Apache-2.2
Apache:使用 Googlebot 連接,單個程序佔用所有伺服器記憶體
在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 文章