Apache-2.2

Apache:使用 Googlebot 連接,單個程序佔用所有伺服器記憶體

  • November 12, 2012

https://serverfault.com/questions/418735/unbelievable-issue-a-single-apache-process-takes-4-gb-of-memory之後,我發布了一個新問題,因為我能夠確定它的事實當連接的客戶端是 Googlebot 時發生。

“它”是指一個 apache 程序佔用 5 GB 記憶體?!

有誰知道這可能是什麼原因?

非常感謝您的幫助!

我發現另一個問題完全相同但沒有答案: https ://serverfault.com/questions/161478/apache-process-sumption-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"

最後我們找到了解決方案,但不是通過查看日誌!

完全不可能通過任何可能的解決方案來理解問題的原因。即使有核心轉儲或 strace,也沒有任何理性分析成功!

直到現在,即使問題解決了,我仍然無法理解問題的真正來源和/或如何理解分析它。因此,很難向您保證我們的解決方案確實是解決方案!

據我所知,解決方案似乎是MaxRequestsPerChild關於 MaxRequestsPerChild 的 ServerFault 文章

引用自:https://serverfault.com/questions/418813