【发布时间】:2014-04-30 07:56:59
【问题描述】:
我有一个m3.xlarge EC2 实例,我今天更新为PHP 5.5.11。
在此更新中,它用php55-pecl-apcu 覆盖了php55-pecl-apc。
经过阅读和实验,我的理解是APC已经被替换为OPCache,除了一个键值存储可以用APCu带回来。
在将我的配置调整为看起来合理的配置后,在登录时使用 Wordpress 现在非常慢,至少差 300-900 毫秒(前端通过清漆缓存,并且工作完美......但是当你使用管理员故意不缓存它,而且速度很慢)。
我在升级时进行了一系列基准测试,每个步骤的样本量很小。随着我的继续,它的退化越来越严重。
- APC(升级前)
--> - OPCache + 无 APCu
--> - OPCache + APCu + APCu 的 WP 插件
现在我只是在玩 OPCache,没有 APCu。
- 如何才能获得相同的性能?我喜欢管理界面,我喜欢它的速度。老实说,我根本看不出这是一个改进,这真的很令人沮丧......除非那里有一些我不知道的超级图书馆。不过,这肯定不是我所拥有的,或者可能配置不好。
- 假设 #1 的答案是“您将其配置为像球一样”,那么您介意看看这个,看看这是否合理吗?
对于我的设置,我使用的是最新的 wordpress,一些大型插件,但我无法将它们删除,因为它们很重要。幸运的是,清漆负责大部分工作。我的网站根目录中有 4 个内核、16GB 内存、~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
【问题讨论】:
-
您确定 OPCache 确实已加载并处于活动状态吗?在里面创建一个带有
<?php var_dump(opcache_get_status()); ?>的文件testopcache.php并尝试访问它,它应该会告诉您OPCache 是否正在工作。还可以尝试将opcache.max_file_size增加到5M甚至更多。 -
我把它增加到了 10M。它肯定在运行,我看到一个巨大的转储。
-
您能否备份您当前的安装并尝试删除这些
few large plugins看看是否有任何改变? -
@Tallboy 我需要看看打包它的人是如何配置 APCu 的,从 src rpm/pkg/whatever 中为我找到配置行 ...