それはあなたのhttpd.confの上部付近に、このようにブロックを追加CentOSの7に付属しているデフォルトの設定に含まれていない任意の解決策を見つけることができません2日試してみました(これは私が)低スペックのサーバー用に使用するものです。
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxRequestWorkers 200
MaxConnectionsPerChild 1000
</IfModule>
MaxClients
は、Apache 2.4でMaxRequestWorkers
に名前が変更されました。私はServerLimit
を少し上回っています。ServerLimit
は再起動で変更できないので、MaxRequestWorkers
することができます。 ServerLimit
はMaxRequestWorkers
の最大値を設定します。したがって、ServerLimit
を少し高くすると、クライアントを切断することなく、緊急時にMaxRequestWorkers
を増やす余地が与えられます。
上記は私のサーバーで使用しているものです。あなたが持っている仕様では、私はMaxRequestWorkers
の1000の値が良いと確信しています。おそらく1200にServerLimit
を入れてください。
documentation for ServerLimitを参照してください。
他の値も増やすことをお勧めします。おそらくStartServers
の場合は40、MinSpareServers
の場合は25、MaxSpareServers
の場合は100です。
私はMaxConnectionsPerChild
を1000に保ちます。そのため、メモリリークがあっても大きな問題は発生しません。私はあなたが同じ価値を保つことをお勧めします。
research all the directivesを入力して、独自の判断を下します。うまくいけば、上記があなたを始めさせるでしょう。一緒にすべてを置く
、私はあなたが使用することをお勧め:あなたがが所定の位置にそれを持って、そしてサーバーが使用されている一度
<IfModule prefork.c>
StartServers 40
MinSpareServers 25
MaxSpareServers 100
ServerLimit 1200
MaxRequestWorkers 1000
MaxConnectionsPerChild 1000
</IfModule>
は、サーバリソースに目が離せない。おそらくこれよりもかなり高い値を使用することができます。
もう一つの重要な問題
私は強く、あなたが(ちょうどそれらをコメントアウト)を使用していない任意のモジュール用LoadModule
ディレクティブを無効にお勧めします。これにより、各サーバープロセスのメモリ占有量が大幅に削減され、さらに多くのプロセスを実行できるようになります。あなたが必要としない多くのモジュールがデフォルトの設定でロードされています。彼らが何をしているかについて、GoogleとGoogleを1つずつ進んでください。これにより、リソースの使用効率が向上します。
ご返信ありがとうございます。 /etc/httpd/conf.modules.d/00-mpm.confのLoadModule mpm_prefork_module modules/mod_mpm_prefork.soを使用しています。これも無効にすることを意味しますか? – user231410
いいえ、それが必要です。つまり、httpd.confの先頭には、多くのLoadModuleディレクティブがあります。私は私のサーバーで約30台以上を無効にしました。あなたはおそらく同じことをすることができます。それらはそれぞれ異なる機能をサーバーに追加し、そのほとんどは必要ありません。追加機能の各ビットは、すべてのサーバープロセスにメモリ使用量を追加します。それらをすべて通過するには時間がかかりますが、その価値はあります。あなたはApacheを本当に効率的に動作させるためにApacheをチューニングしなければなりません。それはApacheの大きな部分です。特にリソースの使用が非常に重要な場合。 – SuperDuperApps
okご返信ありがとうございました – user231410