我有一个m3.xlarge EC2实例,我今天更新到PHP 5.5.11。
通过这个更新,它用php55-pecl-apcu覆盖了php55-pecl-apcu。
在阅读和实验之后,我的理解是APC已经被OPCache取代了,除了一个可以用APCu带回的关键值存储。
在将我的配置调整到一些看起来合理的东西之后,登录时使用Wordpress的速度非常慢,至少300-900 is更糟(前端通过清漆缓存,工作非常完美.但是,当您使用管理时,它是故意不缓存的,慢得像罪恶一样)。
我在升级时做了一系列基准测试,每一步都有一个小样本。当我继续下去的时候,情况越来越糟。
--> (升级前)-->现在我只是和OPCache在一起,没有APCu。
对于我的设置,我使用的是最新的wordpress,一些大型插件,但我不能把它们摘下来,因为它们很重要。幸运的是,清漆处理了大部分工作。我有4核,16 in内存,~10k文件在我的网站根目录。我也没有真正的硬核心应用程序或任何东西,除了wordpress,这是一个相当普通的设置。我认为这是为了可能有帮助的东西。
配置:
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=0
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.max_wasted_percentage=5
opcache.use_cwd=1
opcache.validate_timestamps=1
opcache.revalidate_freq=0
opcache.revalidate_path=0
opcache.save_comments=0
opcache.load_comments=0
opcache.fast_shutdown=1
opcache.enable_file_override=0
opcache.optimization_level=0xffffffff
opcache.inherited_hack=1
opcache.dups_fix=0
opcache.blacklist_filename=/etc/php-5.5.d/opcache*.blacklist
opcache.max_file_size=2M
opcache.consistency_checks=1
opcache.force_restart_timeout=180
opcache.error_log=/var/log/php-fpm/5.5/opcache.log
opcache.log_verbosity_level=1
opcache.preferred_memory_model=
opcache.protect_memory=0发布于 2014-07-18 01:29:51
现在,您正在检查每个请求中的每个文件是否进行更改,这可能不是您在生产系统中想要的。
我通常只是禁用它(记得在进行更改后重新启动web服务器):
opcache.validate_timestamps=0或者,您可以尝试将频率设置为0以外的其他内容,并使其处于启用状态:
opcache.validate_timestamps=1
opcache.revalidate_freq=300从理论上讲,这只需要每5分钟检查一次更改。
发布于 2014-07-19 13:41:08
你也有
opcache.consistency_checks=1根据医生的说法,这会降低性能。把它关了。
opcache.consistency_checks integer如果非零,OPcache将验证每N个请求的缓存校验和,其中N是此配置指令的值。这只应在调试时启用,因为它会损害性能。
发布于 2014-07-17 06:47:31
负责将OPCache集成到PHP中的RFC:
APC可以回收旧的失效脚本的内存。APC使用内存管理器,可以回收与不再使用的脚本相关联的内存;Optimizer+的工作方式不同,并将这样的内存标记为“脏”,但实际上从未收回它。一旦脏百分比上升到可配置阈值以上,Optimizer+就会重新启动自己。请注意,这种行为既有稳定性的优点,也有缺点。
我的猜测是,您正在达到触发操作码缓存重新启动的阈值。
参考资料:optimizer
https://stackoverflow.com/questions/23382615
复制相似问题