APC->APCu/OPCache,性能差

2022-08-30 14:38:00

我有一个 EC2 实例,我今天已更新到该实例。m3.xlargePHP 5.5.11

在此更新中,它用 .php55-pecl-apcphp55-pecl-apcu

在阅读和实验之后,我的理解是,除了一个键值存储,可以用.APCOPCacheAPCu

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

我在升级时做了一系列基准测试,每个步骤的样本量都很小。随着我的继续,它变得越来越糟。

  • APC(升级前)-->
  • OPCache + no APCu-->
  • OPCache + APCu + WP Plugin for APCu

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

  1. 如何实现相同的性能?我喜欢管理界面,我喜欢它的速度。老实说,我根本不认为这是一种进步,这真的令人沮丧......除非有一些我不知道的超级图书馆。这当然不是我所拥有的,或者它可能配置得不好。
  2. 假设#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

答案 1

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

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

opcache.validate_timestamps=0

或者,您可以尝试将频率设置为 0 以外的值,并使其保持启用状态:

opcache.validate_timestamps=1  
opcache.revalidate_freq=300

从理论上讲,这应该每5分钟检查一次更改。


答案 2

您还拥有

opcache.consistency_checks=1

根据文档说,这将降低性能。将其关闭。

opcache.consistency_checks integer

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


推荐