Выбор ответа Senior Производительность: OPcache и FPM обновлено

opcache.validate_timestamps в продакшене

Вопрос

В продакшене выставили opcache.validate_timestamps=0. Что нужно учесть при деплое?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Изменения не заметят сами: после деплоя нужен reload FPM. Отключение проверки времени изменения убирает системные вызовы stat и даёт прирост, но кеш больше не инвалидируется сам.

Варианты ответа

  1. Ничего: OPcache сам увидит новые файлы по их inode и mtime
  2. Изменения не заметят сами: после деплоя нужен reload FPMправильный ответ
  3. Это отключит OPcache полностью, и байткод не кешируется
  4. Каждый запрос будет компилировать файлы заново без кеша

Разбор

Отключение проверки времени изменения убирает системные вызовы stat и даёт прирост, но кеш больше не инвалидируется сам. Поэтому деплой заканчивается systemctl reload php-fpm (или opcache_reset через FPM, а не CLI). Схема с атомарной заменой symlink каталога релиза плюс reload исключает смесь старых и новых файлов. Сам OPcache при этом работает.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.