我的WordPress的博客网站一般每分钟200用户,但低于1000用户每分钟加载我的网站变得非常缓慢,这个警告出现在我的error_log。
[Sun Aug 17 16:44:41 2014] [warn] [client **.***.**.***] mod_fcgid: can't apply process slot for /var/www/cgi-bin/cgi_wrapper/cgi_wrapper
有时这两个也伴随着警告:
[Sun Aug 17 16:44:41 2014] [warn] [client ***.***.***.**] mod_fcgid: read data timeout in 45 seconds [Sun Aug 17 16:44:41 2014] [error] [client ***.***.**.**] Premature end of script headers: index.php
我检查了服务器状态和CPU,内存和负载水平低于30%。
服务器信息:
CPU GenuineIntel, Intel(R) Xeon(R)CPU L5630 @ 2.13GHz Version Parallels Plesk Panel v11.5.30_build115130819.13 os_CentOS 5 OS CentOS 5.5 (Final) Memory 5.89 GB
Prefork.c:
<IfModule prefork.c> StartServers 1 MinSpareServers 1 MaxSpareServers 3 ServerLimit 50 MaxClients 50 MaxRequestsPerChild 4000 </IfModule>
Fcgid.conf
FcgidIdleTimeout 40 FcgidProcessLifeTime 30 FcgidMaxProcesses 20 FcgidMaxProcessesPerClass 8 FcgidMinProcessesPerClass 0 FcgidConnectTimeout 30 FcgidIOTimeout 45 FcgidInitialEnv RAILS_ENV production FcgidIdleScanInterval 10
这个警告的原因是什么?我该如何解决?
你见过http://www.cloudlinux.com/blog/clnews/perfecting-fastcgi-settings-for-shared-hosting.php吗?
FcgidMaxProcesses – 这是FCGID将为所有用户启动的进程总数。 这是防止OOM问题。 你有更多的RAM,你可以设置的值越高。 如果将此值设置得太低,则会出现500个错误,因为FCGID将无法创build新进程来为请求提供服务。 这个值也取决于PHP进程的大小(这反过来取决于你为PHP启用的扩展),因为这个进程越大,你将使用OOM的速度越快。 您可以尝试根据您的RAM使用以下数字:8GB – 约150,16GB – 300另外,请确保您监视Apache错误日志。 如果你看到“不能应用进程槽的错误” – 这意味着你正在打FcgidMaxProcesses
尝试将FcgidMaxProcesses增加到150