如果使用prefork作为apache模块运行,PHP是否会利用APC?

我已经安装了APC,但是我并没有像预期的那样对性能产生巨大的影响。 其实,我不确定我是否观察到任何好处,但也许只是因为与执行我自己的代码相比,花在解释php代码上的CPU时间可以忽略不计。

所以我想知道:这可能是因为我运行PHP作为一个Apache模块(而不是fastcgi)和/或因为PHP使用prefork(而不是工人)? 这些都会以某种方式打败通过APC可以实现的性能提升?

APC可以正确地使用mod_php ,因为所有的Apache进程都共享相同的APCcaching。 事实上,FastCGIconfiguration在这方面可能会更麻烦(例如,如果使用mod_fcgid ,APC共享caching将无法正常工作;但是,php-fpm不应该有这样的问题)。

APC可能需要调整才能正常工作; 例如,默认的共享内存大小( apc.shm_size=32M )可能太小了。 您可以使用随APC一起发行的apc.php脚本获取caching的性能指标 – 将脚本放入可由同一caching实例服务的可通过Web访问的目录中( mod_php表示“同一个Apache实例上的任何虚拟主机” ),并从networking浏览器访问它,而您的实际网站上有一些负载。 您的caching在正常的网站加载时不应该变满(如果caching在一些罕见的pipe理请求上变满,那么可以,但用于回复来自正常站点用户的请求的PHP代码应始终适合caching以获得最佳性能)。