RAM使用量が上限に達したため、Apacheサーバーを毎日再起動します。
価値があるものの このserverfaultの回答を参照 ですが、Apache構成でMaxClients
を下げることは、未知のルート問題の解決策だとは思いません。
以下のApacheプロセスは、MBが非常に大きく、時間がかかるようです。これはメモリリークがあることを意味しますか。これは、MaxRequestsPerChild設定を下げる必要があることを意味しますか?
参照 http://www.devside.net/articles/Apache-performance-tuning
以下のデータから理解できますか?
以下は何の抜粋です
$top
とM
戻り値:
20839 www-data 20 0 1008m 359m 22m S 4 4.8 1:52.61 Apache2
20844 www-data 20 0 1008m 358m 22m S 1 4.8 1:51.85 Apache2
20842 www-data 20 0 1008m 356m 22m S 1 4.8 1:54.60 Apache2
20845 www-data 20 0 944m 353m 22m S 0 4.7 1:51.80 Apache2
次に、単一のプロセスを
$Sudo strace -p 20839
私にとっては、この1行だけが暗号化されて返されます。
restart_syscall(<... resuming interrupted call ...> <unfinished ...>
洞察はありますか?ありがとう。
その行は、現在のシステムコールがstraceによって中断され、straceがそれを再実行するように要求したことを意味します。あなたがトレースしているプロセスは眠っていると思います。
Apacheがforkするクライアントが多すぎて、サーバーがディスクへのページングを開始する場合は、MaxClients
ディレクティブを低くする必要があります。
MaxClients <=(RAM-RSS_all_other_processes)/(Apache_process_RSS-Apache_SHR)-1