0

我一直在使用带有 mpm-worker 和 mod_fcgid 的 apache Web 服务器。

我已阅读有关 mod_fcgid 的信息,它不能使用操作码缓存。

http://www.brandonturner.net/blog/2009/07/fastcgi_with_php_opcode_cache/

我的 php 配置中似乎启用了 apc 缓存模块。

我不确定我生成的 php 代码是否永远不会共享。

我应该删除 APC 吗?它有任何开销吗?

4

2 回答 2

2

我不确定我生成的 php 代码是否永远不会共享。

你可能会发现这个问题很有帮助。

我应该删除 APC 吗?它有任何开销吗?

至于开销,如果您有n 个进程,那么您将有n 个缓存。它不节省空间,但它仍可能有助于减少CPU周期。

于 2010-11-30T00:16:52.023 回答
1

它确实使用操作码缓存,但缓存不会在 PHP 进程之间共享,因此它们将为每个进程缓存一次。绝对值得使用 APC。

阅读完这篇文章后,我将在此处投入我自己的 0.2 美元,与 fgcid 与 fastcgi 打交道。我们最初部署了一个与本文中描述的非常相似的解决方案,使用 fastcgi 并让 PHP 进程产生多个子进程。这是一种解决共享缓存问题的尝试。

但是,我们使用此解决方案时遇到了周期性的完全锁定;PHP 进程会挂起,而 fastcgi 将无法检测到它,导致我们的整个应用程序对所有用户都挂起。

我们再次切换到 fcgid,锁定完全停止。每个进程缓存有一些开销,但 fcgid 只会在需要时生成新的 PHP 进程,因此实际上开销很小。

我们还将用户缓存与 APC 一起使用,而不仅仅是操作码缓存,所以对我们而言,这种权衡绝对是值得的(缓存数据意味着服务器上的工作更少,缓存的操作码意味着服务器上的工作更少),因此 CPU 使用率肯定会降低轻微的内存使用损失。

于 2010-11-30T00:53:14.057 回答