页面加载完成一个快速的初始连接,然后在页面呈现之前挂起大约10秒。当服务器负载增加时,我开始查看top &我看到两个CPU有时都被php的4-8个进程固定在100%之间。我的理论是,由于我从未见过RAM使用率超过50%,所以apache能够处理传入的请求,但正在排队等待PHP处理。我的mod_fcgid/php配置有什么问题?
RHEL 5.4
2 Xeon E5420s @ 2.50 Ghz
4 Gb RAM
Apache 2.2.3
超时30
KeepAlive打开
MaxKeepAliveRequests %0
KeepAliveTimeout 5
<IfModule worker.c>
StartServers 2
MaxClients 300
MinSpareThreads 25MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
mod_fcgid 2.2.10
LoadModule fcgid_module模/mod_fcgid.so
<IfModule !mod_fastcgi.c>
AddHandler fcgid-script fcg fcgi fpl php
</IfModule>
SocketPath run/mod_fcgid
SharememPath run/mod_fcgid/fcgid_shm
DefaultInitEnv PHPRC "/etc/“
FCGIWrapper /usr/bin/php-cgi .php
MaxRequestsPerProcess 1500
MaxProcessCount 20
IPCCommTimeout 240
IdleTimeout 240
装甲运兵车3.0.19
扩展= apc.so
apc.enabled=1
apc.shm_segments=1
apc.optimization=0
apc.shm_size=32
apc.ttl=7200
APC缓存为43%,命中率为99%。
发布于 2011-01-11 17:42:19
有几件事我要检查一下.
首先,您有什么输出到Apache错误日志中吗?您可能需要将日志级别提高到“警告”,以便查看CGI进程的输出。虽然在本例中,将其用于调试可能更有益处,因为apache将打印出与fcgi相关的日志记录信息。查看访问日志也可能有助于查看apache的返回403或500个代码。
第二,您正在尝试执行哪些PHP代码,以及如何测试它?虽然我希望看到更多的cgi进程,但在这方面可能会有一些进展。您是使用重脚本还是使用phpinfo();之类的简单内容?
发布于 2011-01-11 16:14:00
除了APC之外,您还有其他加速器(zend优化器、eAccelerator等)配置吗?当APC缓存和zend优化器都启用时,我也发生了类似的事情。很明显他们之间有冲突。
发布于 2011-01-11 16:18:47
您正在运行什么版本的PHP?您的内核是32位还是64位?
如果是,请看:http://www.theregister.co.uk/2011/01/04/weird_php_dos_外阴/
https://serverfault.com/questions/220959
复制相似问题