我已经安装了 APC,但我没有观察到对性能的影响如我预期的那么大。实际上,我不确定我是否观察到了任何好处,尽管这可能只是因为与我自己的代码的执行相比,解释 php 代码所花费的 cpu 时间可以忽略不计。
所以我想知道:是否可能是因为我将 PHP 作为 apache 模块运行(而不是 fastcgi)和/或因为 php 使用的是 prefork(而不是 worker)?这些是否以某种方式破坏了可以通过 APC 实现的性能改进?
我已经安装了 APC,但我没有观察到对性能的影响如我预期的那么大。实际上,我不确定我是否观察到了任何好处,尽管这可能只是因为与我自己的代码的执行相比,解释 php 代码所花费的 cpu 时间可以忽略不计。
所以我想知道:是否可能是因为我将 PHP 作为 apache 模块运行(而不是 fastcgi)和/或因为 php 使用的是 prefork(而不是 worker)?这些是否以某种方式破坏了可以通过 APC 实现的性能改进?
APC
mod_php
在所有 Apache 进程共享相同的 APC 缓存的意义上都能正常工作。事实上,一个FastCGI配置在这方面可能会有更多问题(例如,如果使用mod_fcgid
,APC共享缓存将无法正常工作;但是,php-fpm应该不会有这样的问题)。APC 可能需要一些调整才能正常工作;例如,默认的共享内存大小 (
apc.shm_size=32M
) 可能太小了。您可以使用apc.php
随 APC 分发的脚本来获取缓存的一些性能指标——将脚本放入由同一缓存实例(mod_php
这意味着“同一 Apache 实例上的任何虚拟主机”)提供服务的 Web 可访问目录中并访问它在您的实际站点上存在一些负载时从 Web 浏览器访问。您的缓存不应在正常站点负载时变满(如果缓存在某些罕见的管理请求中变满也没关系,但用于回复正常站点用户请求的 PHP 代码应始终适合缓存以获得最佳性能)。