首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >APC -> APCu / OPCache,性能差

APC -> APCu / OPCache,性能差
EN

Stack Overflow用户
提问于 2014-04-30 07:56:59
回答 3查看 22.7K关注 0票数 31

我有一个m3.xlarge EC2实例,我今天更新到PHP 5.5.11

通过这个更新,它用php55-pecl-apcu覆盖了php55-pecl-apcu

在阅读和实验之后,我的理解是APC已经被OPCache取代了,除了一个可以用APCu带回的关键值存储。

在将我的配置调整到一些看起来合理的东西之后,登录时使用Wordpress的速度非常慢,至少300-900 is更糟(前端通过清漆缓存,工作非常完美.但是,当您使用管理时,它是故意不缓存的,慢得像罪恶一样)。

我在升级时做了一系列基准测试,每一步都有一个小样本。当我继续下去的时候,情况越来越糟。

  • --> (升级前)
  • OPCache + no APCu -->
  • OPCache + APCu + WP APCu插件

现在我只是和OPCache在一起,没有APCu。

  1. 我怎样才能达到同样的效果?我喜欢管理界面,我喜欢它的速度。我真的不认为这是一种进步,这真的很令人沮丧.除非有个我不知道的超级图书馆。它肯定不是我所拥有的,或者它可能配置得不太好。
  2. 假设#1的答案是‘你把它配置成球’,那么你介意看一下这个,看看这是否合理吗?

对于我的设置,我使用的是最新的wordpress,一些大型插件,但我不能把它们摘下来,因为它们很重要。幸运的是,清漆处理了大部分工作。我有4核,16 in内存,~10k文件在我的网站根目录。我也没有真正的硬核心应用程序或任何东西,除了wordpress,这是一个相当普通的设置。我认为这是为了可能有帮助的东西。

配置:

代码语言:javascript
复制
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
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-07-18 01:29:51

现在,您正在检查每个请求中的每个文件是否进行更改,这可能不是您在生产系统中想要的。

我通常只是禁用它(记得在进行更改后重新启动web服务器):

代码语言:javascript
复制
opcache.validate_timestamps=0

或者,您可以尝试将频率设置为0以外的其他内容,并使其处于启用状态:

代码语言:javascript
复制
opcache.validate_timestamps=1  
opcache.revalidate_freq=300

从理论上讲,这只需要每5分钟检查一次更改。

票数 19
EN

Stack Overflow用户

发布于 2014-07-19 13:41:08

你也有

代码语言:javascript
复制
opcache.consistency_checks=1

根据医生的说法,这会降低性能。把它关了。

opcache.consistency_checks integer 如果非零,OPcache将验证每N个请求的缓存校验和,其中N是此配置指令的值。这只应在调试时启用,因为它会损害性能。

票数 9
EN

Stack Overflow用户

发布于 2014-07-17 06:47:31

负责将OPCache集成到PHP中的RFC:

APC可以回收旧的失效脚本的内存。APC使用内存管理器,可以回收与不再使用的脚本相关联的内存;Optimizer+的工作方式不同,并将这样的内存标记为“脏”,但实际上从未收回它。一旦脏百分比上升到可配置阈值以上,Optimizer+就会重新启动自己。请注意,这种行为既有稳定性的优点,也有缺点。

我的猜测是,您正在达到触发操作码缓存重新启动的阈值。

参考资料:optimizer

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23382615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档