3

我试图让 PHP 5.5 的 OPcache 在 Vagrant 的 Ubuntu 14.04 上运行的 Nginx/PHP-FPM 设置上工作。

我的/etc/php5/mods-available/opcache.ini目录配置如下:

zend_extension=opcache.so

opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=50000

运行php -vphpinfo()显示 OPcache 已启用,加载opcache-statusopcache-gui显示相同。

在 OPcache GUI 中,我可以看到文件正在被缓存,我还通过将 OPcache 设置为以详细模式登录来确认这一点。问题是……他们永远不会被击中!

我已经运行 ApacheBench 来锤击应用程序,但没有记录一次命中 - 0 次命中和 103 次未命中。我什至测试了一个hello_world.php简单地执行的文件echo 'Hello, world!';,并且每次都注册为“未命中”。

有谁知道可能出了什么问题?

更新: 我设法获得了一个可重复的命中记录案例。如果在我service php5-fpm restart运行 ApacheBench 后立即运行 100 个并发连接,则缓存命中率 > 75%。从那时起,每次“正常”刷新也将被记录为命中。

但是,如果我重新启动 php-fpm 并且我的初始请求是“正常的”(即仅来自我的 Web 浏览器),然后我运行 ApacheBench 并有 100 个并发连接 - 他们都错过了......</p>

就像最初的请求需要敲击服务器才能让点击从那时起持续存在……真的很奇怪!我假设这可能与 php-fpm 产生进程的方式有关,但我真的是该领域的新手,所以如果这给任何人一些线索 - 请帮助!

4

0 回答 0