Apache 生成大量 php-cgi 进程,但它们不会退出 - 网站挂起

Apache 生成大量 php-cgi 进程,但它们不会退出 - 网站挂起

突然,当我尝试加载我的网站时,Apache 开始不响应。网站基于 Drupal,仅供参考。我通过执行以下检查服务器状态

service httpd status

并且显示 apache 仍在运行,即使它没有响应。网站开始加载但从未完成加载,浏览器屏幕只是白色。我重新启动 apache 后,它工作正常,但半小时后再次崩溃。进一步调查显示,如果我发出

ps auxwwf

有很多 php-cgi 进程一直存在,永远不会退出。如果我运行

killall php-cgi

网站开始再次响应。但大约半小时后它又挂了。如果我再次尝试终止所有 php-cgi 进程,这不再能解决问题,我必须重新启动整个 httpd。

有谁知道为什么会发生这种情况,可能是什么原因造成的以及如何解决这个问题。

我运行的是 CentOS 6,Apache 2.2.27 和 PHP 5.4.27。我的网站每天有大约 5000 名独立访客。

答案1

结果显示cache_form数据库中的 Drupals 表超过 6GB,因此自动清理功能停止工作。每当进程想要访问此数据库时,php-cgi 进程就会挂起。手动清除缓存表后,一切都开始正常工作。

相关内容