Opcache очищается слишком быстро

Я настроил свой веб-сайт на новом хостинге (виртуальном облаке), однако я смотрю на opcache, и scripts, не используемый, скажем, a minutes or so, удаляются из кеша.

Так есть ли способ остановить это? или это нормальное поведение?

Большое спасибо.


person Raheel Hasan    schedule 14.12.2015    source источник
comment
каковы настройки opcache в вашем php.ini?   -  person Clay    schedule 14.12.2015
comment
Какое значение имеет opcache.max_accelerated_files? что произойдет, если вы установите opcache.validate_timestamps = 0?   -  person Clay    schedule 14.12.2015
comment
opcache.max_accelerated_files = 2000   -  person Raheel Hasan    schedule 14.12.2015
comment
У вас больше 2000 файлов?   -  person Clay    schedule 14.12.2015
comment
установите validate_timestamps = 0, тогда сброс кеша возможен только при перезапуске сервера или ручном вызове opcache_reset. И ... случайно вы вызываете opcache_reset () откуда угодно?   -  person Clay    schedule 14.12.2015
comment
нет, я никуда не вызываю opcache_reset ()   -  person Raheel Hasan    schedule 14.12.2015


Ответы (2)


На самом деле для этого есть конфигурация. opcache.revalidate_freq=2, значение по умолчанию - 2 секунды, opcache будет пытаться проверять метки времени каждые 2 секунды, и если файлы будут изменены, он будет повторно подтвержден. Вы можете изменить значение, чтобы оно соответствовало вашим потребностям, или вы можете просто отключить проверку отметки времени с помощью этого conf opcache.validate_timestamps=0, но в этом случае каждый раз, когда вы развертываете код в производственной среде, вам нужно перезапускать php-fpm (если вы используете php-fpm) и веб-сервер

opcache.revalidate_freq=2 или любое целое значение

opcache.validate_timestamps=1 or opcache.validate_timestamps=0

person midan888    schedule 12.07.2016
comment
При использовании от opcache.validate_timestamps до 0 опция opcache.revalidate_freq будет проигнорирована. - person Yousha Aleayoub; 18.09.2017

Похоже, вам нужно определить validate_timestamps=0 в php.ini. Однако будьте осторожны - если вы загружаете какие-либо изменения в свои файлы PHP, вам нужно будет перезапустить Apache (если вы используете mod_php5) или PHP5-FPM, или очистить opcache вручную.

Для получения подробной информации о том, как очистить opcache вручную, вам в основном нужно создать файл PHP с opcache_reset() и запустить его, но он должен быть в том же SAPI, что и другие ваши файлы, то есть запускаться PHP5-FPM, если это то, что обслуживает остальные ваши файлы. http://ihaveabackup.net/2013/10/19/invalidating-the-opcache-in-php-5-5/

person Benr77    schedule 15.12.2015