Я пытаюсь заставить OPcache PHP 5.5 работать над установкой Nginx / PHP-FPM, работающей на Ubuntu 14.04 в Vagrant.
У меня есть мой /etc/php5/mods-available/opcache.ini
каталог настроен следующим образом:
zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=50000
Бег php -v
а также phpinfo()
показывает, что OPcache включен, и загрузка opcache-статус а также opcache-гуй показывает то же самое.
В графическом интерфейсе OPcache я вижу, что файлы кэшируются, и я также подтвердил это, установив OPcache для входа в подробный режим. Проблема в том, что… их никогда не бьют!
Я запустил ApacheBench, чтобы забить приложение, и ни одного попадания не зарегистрировано — 0 попаданий и 103 промаха. Я даже проверил hello_world.php
файл, который просто выполняет echo 'Hello, world!';
и это тоже регистрируется как «мисс» каждый раз.
У кого-нибудь есть идеи, что может быть не так?
Обновить:
Мне удалось получить воспроизводимый случай регистрации хитов. Если сразу после запуска service php5-fpm restart
Я запускаю ApacheBench со 100 одновременными подключениями, кэш получает 75%. С этого момента каждое «нормальное» обновление также будет регистрироваться как попадание.
Тем не менее, если я перезапущу php-fpm и мои начальные запросы будут «нормальными» (то есть только из моего веб-браузера), а затем я запускаю ApacheBench со 100 одновременными подключениями — все они пропускают…
Это похоже на то, что первоначальные запросы должны отбивать сервер для того, чтобы с тех пор хиты зависали… действительно странно! Я предполагаю, что это может быть связано с тем, как php-fpm порождает процессы, но я действительно новичок в этой области, так что, если это даст кому-нибудь подсказки — пожалуйста, помогите!
Задача ещё не решена.
Других решений пока нет …