web-dev-qa-db-ja.com

Apache:Googlebot接続では、単一のプロセスがすべてのサーバーメモリを使用します

次の https://serverfault.com/questions/418735/unbelievable-issue-a-single-Apache-process-takes-4-gb-of-memory 私は新しい質問として投稿しました接続しているクライアントがGooglebotである場合に発生するという事実を識別できます。

「それ」とは、1つのApacheプロセスが5ギガバイトのメモリを消費することを意味しますか?!

誰かがこれの原因が何であるかについての考えを持っていますか?

助けてくれてありがとう!

まったく同じ問題の別の質問を見つけましたが、答えはありません: 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"
2
db_ch

最終的に解決策を見つけましたが、ログを調べたわけではありません!

考えられる解決策では問題の原因を理解することは完全に不可能でした。コアダンプまたはstraceを使用しても、合理的な分析は成功しませんでした。

今まで、問題が解決されたとしても、問題が実際にどこから来たのか、そして/またはそれを分析する方法を理解する方法を理解することはできません。したがって、私たちのソリューションが本当にソリューションであるという保証を与えることは本当に難しいです!

私の知る限り、解決策はMaxRequestsPerChildMaxRequestsPerChildに関するServerFaultの投稿

1
db_ch