Выбор ответа Senior Производительность: OPcache и FPM обновлено
opcache.validate_timestamps в продакшене
Вопрос
В продакшене выставили opcache.validate_timestamps=0. Что нужно учесть при деплое?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Изменения не заметят сами: после деплоя нужен reload FPM. Отключение проверки времени изменения убирает системные вызовы stat и даёт прирост, но кеш больше не инвалидируется сам.
Варианты ответа
- Ничего: OPcache сам увидит новые файлы по их inode и mtime
- Изменения не заметят сами: после деплоя нужен reload FPMправильный ответ
- Это отключит OPcache полностью, и байткод не кешируется
- Каждый запрос будет компилировать файлы заново без кеша
Разбор
Отключение проверки времени изменения убирает системные вызовы stat и даёт прирост, но кеш больше не инвалидируется сам. Поэтому деплой заканчивается systemctl reload php-fpm (или opcache_reset через FPM, а не CLI). Схема с атомарной заменой symlink каталога релиза плюс reload исключает смесь старых и новых файлов. Сам OPcache при этом работает.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.