apache httpd のどこかに (増大する) メモリの問題があるようです。
クイック写真: http://screencast.com/t/NGAzarD87O
しばらくの間、元の (物理) サーバーで正常に動作していることに注意してください。現在、新しい VM (より多くのメモリと CPU を使用) で実行されますが、システムがハングするまで mem/swap でゆっくりと消費されます。
httpd を再起動すると、mem が元に戻ります (キャッチした場合)。
httpd.x86_64 2.2.3-76.el5_9 installed
PHP 5.1.6 (cli) (built: Jun 22 2012 06:20:25)
MySQL Server version: 5.0.95
物理マシンで何年も正常に実行されているため、run/etc のスクリプトのいずれかであるとは思えません。新しいマシンですべての構成 (http、php など) を一致させようとしましたが、httpd が成長し続ける理由がわかりません。
$ ps -ylC httpd --sort:rss
S UID PID PPID C PRI NI RSS SZ WCHAN TTY TIME CMD
S 0 13814 1 0 78 0 29208 68382 - ? 00:00:00 httpd
S 48 20854 13814 0 76 0 34876 70930 semtim ? 00:00:00 httpd
S 48 20853 13814 0 75 0 36592 71387 semtim ? 00:00:00 httpd
S 48 13822 13814 0 75 0 36780 71430 semtim ? 00:00:00 httpd
S 48 20696 13814 0 75 0 37092 71520 semtim ? 00:00:00 httpd
S 48 13821 13814 0 75 0 37184 71529 semtim ? 00:00:01 httpd
S 48 13820 13814 0 75 0 37220 71527 - ? 00:00:01 httpd
S 48 13824 13814 0 75 0 37236 71513 semtim ? 00:00:01 httpd
S 48 13818 13814 0 75 0 37636 71547 semtim ? 00:00:01 httpd
S 48 13819 13814 0 75 0 37636 71617 semtim ? 00:00:01 httpd
S 48 13823 13814 0 75 0 37888 71689 semtim ? 00:00:01 httpd
S 48 13825 13814 0 75 0 37900 71676 semtim ? 00:00:01 httpd
更新: この質問を書いている間 (おそらく 10 ~ 15 分)、上記を再実行したところ、RSS はすべて、上記の ~37000 ではなく ~51072 に置かれています。
これはpythonプログラムからの実行です
Private + Shared = RAM used Program
.... SNIPPED OUT ....
208.0 MiB + 25.5 MiB = 233.5 MiB httpd (12)
---------------------------------
477.1 MiB
PHP メモリ設定:
max_execution_time = 30
max_input_time = 60
memory_limit = 152M
モジュール:
$ apachectl -M
httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.1.2 for ServerName
Loaded Modules:
core_module (static)
mpm_prefork_module (static)
http_module (static)
so_module (static)
auth_basic_module (shared)
auth_digest_module (shared)
authn_file_module (shared)
authn_alias_module (shared)
authn_anon_module (shared)
authn_dbm_module (shared)
authn_default_module (shared)
authz_host_module (shared)
authz_user_module (shared)
authz_owner_module (shared)
authz_groupfile_module (shared)
authz_dbm_module (shared)
authz_default_module (shared)
ldap_module (shared)
authnz_ldap_module (shared)
include_module (shared)
log_config_module (shared)
logio_module (shared)
env_module (shared)
ext_filter_module (shared)
mime_magic_module (shared)
expires_module (shared)
deflate_module (shared)
headers_module (shared)
usertrack_module (shared)
setenvif_module (shared)
mime_module (shared)
dav_module (shared)
status_module (shared)
autoindex_module (shared)
info_module (shared)
dav_fs_module (shared)
vhost_alias_module (shared)
negotiation_module (shared)
dir_module (shared)
actions_module (shared)
speling_module (shared)
userdir_module (shared)
alias_module (shared)
rewrite_module (shared)
proxy_module (shared)
proxy_balancer_module (shared)
proxy_ftp_module (shared)
proxy_http_module (shared)
proxy_connect_module (shared)
cache_module (shared)
suexec_module (shared)
disk_cache_module (shared)
file_cache_module (shared)
mem_cache_module (shared)
cgi_module (shared)
version_module (shared)
perl_module (shared)
php5_module (shared)
proxy_ajp_module (shared)
python_module (shared)
ssl_module (shared)
Syntax OK
httpd.conf 設定:
IfModule prefork.c> ignore format on these tags
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
# worker MPM
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
https://code.google.com/p/check-httpd-limits/wiki/Documentationでプログラムを使用すると、次の結果が得られました。
Apache Httpd MPM 構成の制限を確認する (バージョン 2.4) ジャン・セバスチャン・モリセット著 - http://surniaulula.com/ Httpd バイナリ - 設定: /etc/httpd/conf/httpd.conf - EXE : /usr/sbin/httpd - MPM : プリフォーク - ルート: /etc/httpd - バージョン: 2.2 Httpd プロセス - PID 10860 (httpd) : 106.93 MB / 3.95 MB 共有 - PID 13814 (httpd) : 28.52 MB / 共有 6.36 MB [平均から除外] - PID 13818 (httpd) : 180.28 MB / 4.29 MB 共有 - PID 13819 (httpd) : 182.67 MB / 4.04 MB 共有 - PID 13820 (httpd) : 182.45 MB / 4.08 MB 共有 - PID 13821 (httpd) : 185.53 MB / 4.04 MB 共有 - PID 13822 (httpd) : 176.12 MB / 4.36 MB 共有 - PID 13823 (httpd) : 180.05 MB / 4.04 MB 共有 - PID 13824 (httpd) : 182.21 MB / 4.05 MB 共有 - PID 13825 (httpd) : 179.36 MB / 4.04 MB 共有 - PID 20696 (httpd) : 180.10 MB / 4.04 MB 共有 - PID 20853 (httpd) : 180.39 MB / 4.03 MB 共有 - PID 20854 (httpd) : 180.79 MB / 4.04 MB 共有 - PID 21003 (httpd) : 159.77 MB / 4.05 MB 共有 - HttpdRealAvg : 166.09 MB [共有を除く] - HttpdSharedAvg: 4.05 MB - HttpdRealTot : 2225.76 MB [共有を除く] -HttpdRunning: 14 Httpd 構成 - 開始サーバー: 8 - サーバー制限: 256 - MinSpareServers: 5 - MaxSpareServers: 20 -MaxRequestsPerChild: 4000 - 最大クライアント数: 256 サーバーメモリ - キャッシュ: 671.46 MB - MemFree : 547.88 MB - MemTotal : 3819.89 MB - スワップフリー: 5951.89 MB - スワップ合計 : 5951.99 MB 計算のまとめ - OtherProcsMem : 370.74 MB (MemTotal - キャッシュ - MemFree - HttpdRealTot - HttpdSharedAvg) - FreeMemNoHttpd : 3449.15 MB (MemFree + キャッシュ + HttpdRealTot + HttpdSharedAvg) - MaxLimitHttpdMem : 42523.09 MB (HttpdRealAvg * MaxClients + HttpdSharedAvg) - AllProcsTotalMem : 42893.83 MB (OtherProcsMem + MaxLimitHttpdMem) MemTotal の最大値 (3819.89 MB) StartServers 8 # (変更なし) デフォルトは 5 です ServerLimit 21 # (256 -> 21) MaxClients MinSpareServers 5 # (変更なし) デフォルトは 5 です MaxSpareServers 20 # (変更なし) デフォルトは 10 です MaxRequestsPerChild 4000 # (変更なし) デフォルトは 10000 です MaxClients 21 # (256 -> 21) (MemFree + キャッシュ + HttpdRealTot + HttpdSharedAvg) / HttpdRealAvg 結果 エラー: AllProcsTotalMem (42893.83 MB) が MemTotal (3819.89 MB) と空きスワップ (5951.89 MB) を 33122.05 MB 超えています。