【发布时间】:2011-04-04 14:46:16
【问题描述】:
我正在运行一个相当典型的 LAMP 堆栈,其中 PHP 通过 mod_fcgid 运行。考虑到它接收到的流量,我认为服务器处于“高负载”状态。
有一个间歇性问题,当访问依赖 PHP 的网站时,Apache 报告所有连接都处于“发送内容”状态(监视器上的“W”)。
没有可言的 PHP 错误,就好像 PHP 在这些“锁定”期间实际上没有被调用。但是,在 apache 站点日志中,我看到以下内容:
(103)Software caused connection abort: mod_fcgid: ap_pass_brigade failed in handle_request function
[warn] mod_fcgid: can't apply process slot for /var/www/cgi-bin/php.fcgi
在此期间,我仍然可以访问不依赖 PHP 的站点,例如 apache 状态和仅 HTML 的虚拟主机(不包含 PHP 处理程序)。
php.fcgi 脚本设置了 PHP_FCGI_MAX_REQUESTS=500,因为我读过 PHP 在 CGI 模式下运行时存在竞争条件问题。 fcgid.conf 还设置了 MaxProcessCount=15。
有没有其他人遇到过这个错误,如果有,如何解决?
【问题讨论】: