我一直在使用带有mpm-worker和mod_fcgid的apache web服务器。
我已经读过mod_fcgid,它无法使用操作码缓存。
http://www.brandonturner.net/blog/2009/07/fastcgi_with_php_opcode_cache/
似乎在我的php配置中启用了apc缓存模块。我不确定我生成的php代码是否从不共享。
我应该删除APC吗?它有任何开销吗?
答案 0 :(得分:2)
我不确定我的衍生php代码是否永远不会被共享。
您可能会发现this question有帮助。
我应该删除APC吗?它有任何开销吗?
至于开销,如果你有 n 进程,那么你将拥有 n 缓存。 它不是节省空间,但它可能仍然有助于减少 CPU 周期。
答案 1 :(得分:1)
它确实使用操作码缓存,但PHP进程之间不共享缓存,因此它们将针对每个进程缓存一次。绝对值得使用APC。
阅读完这篇文章之后,我将在这里投入0.2美元,与fgcid和fastcgi相关。我们最初部署的解决方案很像文章中描述的解决方案,使用fastcgi并让PHP进程生成多个子进程。这是尝试解决共享缓存的问题。
但是,我们经历过此解决方案的定期完全锁定; PHP进程将挂起,fastcgi将无法检测到它,导致我们的整个应用程序挂起所有用户。
我们再次切换到fcgid,锁定完全停止。每个进程都有一些缓存,但是fcgid只会在需要时生成新的PHP进程,所以实际上开销很小。
我们还使用APC的用户缓存,而不仅仅是操作码缓存,因此对我们来说,权衡绝对是值得的(缓存数据意味着服务器上的工作量减少,缓存操作码意味着服务器上的工作量减少)因此CPU使用率是绝对减少了一点点内存使用惩罚。