Apache:使用Googlebot连接,一个进程占用所有服务器内存

以下https://serverfault.com/questions/418735/unbelievable-issue-a-single-apache-process-takes-4-gb-of-memory我作为一个新的问题发布,因为我能够确定它的事实当连接的客户端是Googlebot时发生。

通过“它”,我的意思是一个单一的Apache进程吃5千兆内存?!

有没有人有一个什么可能是这个原因的想法?

非常感谢您的帮助!

我发现了另一个问题完全相同的问题,但没有答案: https : //serverfault.com/questions/161478/apache-process-consuming-all-memory-on-the-server

我们的环境使用PHP和postgresql:

# httpd -V Server version: Apache/2.2.3 Server built: Jun 6 2012 10:00:42 Server's Module Magic Number: 20051115:3 Server loaded: APR 1.2.7, APR-Util 1.2.7 Compiled using: APR 1.2.7, APR-Util 1.2.7 Architecture: 64-bit Server MPM: Prefork threaded: no forked: yes (variable process count) Server compiled with.... -D APACHE_MPM_DIR="server/mpm/prefork" -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_SYSVSEM_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D DYNAMIC_MODULE_LIMIT=128 -D HTTPD_ROOT="/etc/httpd" -D SUEXEC_BIN="/usr/sbin/suexec" -D DEFAULT_PIDLOG="run/httpd.pid" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_LOCKFILE="logs/accept.lock" -D DEFAULT_ERRORLOG="logs/error_log" -D AP_TYPES_CONFIG_FILE="conf/mime.types" -D SERVER_CONFIG_FILE="conf/httpd.conf" 

最后,我们find了一个解决scheme,但不是通过查看日志!

通过任何可能的解决scheme来理解问题的原因是完全不可能的。 即使有核心的倾倒或障碍,也没有理性的分析成功!

到目前为止,即使解决了这个问题,我仍然无法理解问题的真正来源和/或如何理解分析。 因此,给我们的解决scheme真的是解决scheme的保证真的很难!

据我所知,解决scheme似乎是MaxRequestsPerChild : ServerFault发布关于MaxRequestsPerChild