我在我的VPS上配置了Apache2 Web服务器,它运行良好。服务器托管一个WordPress博客,直到现在我使用的是一些WP Super Cache插件。我想切换到OPcache。新缓存正在运行,至少我是这么认为的。这是phpinfo脚本的一些输出:
Zend OPcache
Opcode Caching Up and Running
Optimization Enabled
Startup OK
Shared memory model mmap
Cache hits 46539
Cache misses 455
Used memory 34701752
Free memory 99515976
Wasted memory 0
Interned Strings Used memory 4194296
Interned Strings Free memory 8
Cached scripts 454
Cached keys 507
Max keys 7963
OOM restarts 0
Hash keys restarts 0
Manual restarts 0
正如您所看到的,我有很多缓存命中,但问题是缓存不起作用。我的意思是,也许它有效,但我没有看到任何性能提升。
当我发出以下命令时,我试图查看每秒可以获得多少请求:
$ ab -kc 10 -n 1000 https://wp.blog.tld/
当我禁用OPcache时,我得到4 / s左右。启用OPcache后,我得到完全相同的数字,大约是4 / s。相反,当我禁用OPcache并启用WP Super Cache时,我接近200 / s。那么OpCache有什么问题?是否缓存或者可能是我的服务器配置有问题?
VPS:
Debian stable
Server version: Apache/2.4.10 (Debian)
Server built: Feb 24 2017 18:40:28
PHP 5.6.30-0+deb8u1 (cli) (built: Feb 8 2017 08:50:21)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
答案 0 :(得分:0)
OPcache是预编译脚本的缓存 - 它消除了在每个请求上编译每个php文件的必要性。这并不意味着它会神奇地提升PHP性能(在某些情况下它可以,在其他情况下可能没有区别)。如果你使用php插件,你重启了你的apache吗? WP Super Cache或W3 Total Cache也是完全不同的插件,可以提供更复杂的选项。