web-dev-qa-db-ja.com

メモリ使用量が90%に達したときにApacheの子プロセスを強制終了するようにUbuntuを設定します

私の状況は次のとおりです。15GbのRAMインスタンス、ラックスペースでMagentoProfessionalを実行しています。

Htopを実行すると、「Apache2 -k start」がより多くの子プロセスを生成し続け、そのうちのいくつかは最大900Mbのメモリを消費することがわかりました。

メモリがほとんど使い果たされると、すべてのサイトがタイムアウトするか、非常に遅くなります。メモリがすべて使い果たされると、これらのプロセスの一部が強制終了されてメモリが解放されたようです。

その後、同じ手順が発生します。

私の質問は、メモリ使用量が85〜90%に達したときに、子プロセスを強制終了してメモリを解放するようにubuntu/Apacheを設定できますか?

1
ALAN VO

OOMについて見つけたものから [〜#〜] oom [〜#〜]

親タスクが選択されると、可能であれば、oomkillerは代わりに個別のアドレス空間を持つ第1世代の子を犠牲にします。これにより、サーバーと重要なシステムデーモンが強制終了されなくなり、最小限の作業が失われます。

Apacheの子プロセスが最初に強制終了されていないことをどのように判断していますか? OOMが子プロセスを強制終了する可能性がありますが、システムはまだ森の外になく、別の子プロセスを強制終了する必要があります(生成される数によって異なります)(私はApacheのヘビーユーザーではないため、Apacheの詳細はわかりませんアドレス空間はその子プロセス間で処理されます)

第二に、これはApache Docsチューニングセクションからのものです Apache Tuning

サーバーがスワップを開始するほど多くの子を生成しないように、MaxRequestWorkers設定を制御することができます。 davidgoが提案したことを調べます。

これがお役に立てば幸いです。

1
APZ