mod_fcgid 错误与服务器滞后有关?

mod_fcgid 错误与服务器滞后有关?

我对运行自己的服务器还比较陌生,而且我的主机似乎也没有就此事给我提供建议或帮助。

我经营着一个非常受欢迎的网站,在向超过 200 万粉丝和关注者发布了一些 Twitter 和 Facebook 帖子后,服务器似乎确实变得滞后并承受着压力。

该服务器有 2 个 CPU 核心、4GB 内存和 100GB 硬盘,运行 wordpress 作为主网站。Wordpress 已获得足够多的内存来运行,我只是想知道为什么即使在高峰时段,我们的服务器配置很高,但仍然如此滞后。

谷歌分析仅显示该网站上有大约 200-250 人(使用实时分析)

所以我的托管公司告诉我检查错误日志,我发现这种情况经常发生。

[2013 年 1 月 30 日,星期三 16:07:18] [警告] [客户端 92.235.67.138] mod_fcgid:无法为 /var/www/cgi-bin/cgi_wrapper/cgi_wrapper 申请进程槽,引用者:URL

这到底是什么意思,我该如何解决,这与滞后有什么关系吗?

答案1

这意味着你击中了最大进程数限制(默认为 100)。

如果您的服务器是 CPU 密集型的 - Wordpress 就是这种情况(其中数据库应该正常工作,即正确索引,可能消耗适量的 I/O 但仍然使用很少的 CPU) - 它将无法同时处理两个以上的请求,因为您有两个 CPU。

如果超出此限制,CPU 上的时间共享(即调度程序)会使您的请求处理时间更长。在这种情况下,需求直接通过“平均负载”(运行“w”命令)来衡量。如果它是 4.0 并且您有 2 个 CPU,则通常需要 1 秒才能处理的请求将需要 2 秒。依此类推。我再说一遍,如果您的服务器是 CPU 密集型的,情况确实如此;通过 top 检查 CPU 使用率,如果它报告 ~100% us(CPU/用户),那就完了。

根据经验,我不会将 FcgidMaxProcesses 设置为高于服务器 CPU 核心数的 2 倍或 4 倍。超过此限制,速度就会变慢。这意味着,为了保持服务器在可接受的条件下运行,一些传入请求会被拒绝(客户端看到 503 或 504)。

因此,您可能需要节省一些 CPU(使用更积极的缓存、安装 php-apc 等),或者添加一些 CPU。如果您需要更详细的 CPU 统计数据来优化您的应用程序,您可以使用http://forge.bearstech.com/trac/wiki/PhpTop我写这篇文章就是为了这个目的。

相关内容