OPcache计算缓存命中数,但没有提升性能

时间:2017-04-04 20:09:53

标签: php wordpress apache caching

我在我的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

1 个答案:

答案 0 :(得分:0)

OPcache是​​预编译脚本的缓存 - 它消除了在每个请求上编译每个php文件的必要性。这并不意味着它会神奇地提升PHP性能(在某些情况下它可以,在其他情况下可能没有区别)。如果你使用php插件,你重启了你的apache吗? WP Super Cache或W3 Total Cache也是完全不同的插件,可以提供更复杂的选项。