プロジェクトでmod-jkを使用してApacheとTomcatを使用しています。私のWebアプリケーションはTomcatインスタンスにあります。 Tomcatのhttp負荷をテストするためにApachejmeterを使用しています。しかし、エラーが発生しますMaxRequestWorkersではなくスコアボードがいっぱいです 1000スレッドでも。
[mpm_event:error] [pid 24313:tid 3075319488] AH00485: scoreboard is full, not at MaxRequestWorkers
[mpm_event:error] [pid 24313:tid 3075319488] AH00484: server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting
約5000スレッド用にhttp-mpmを構成しました。
httd-mpm.confファイルは次のとおりです。
<IfModule mpm_event_module>
ServerLimit 200
StartServers 3
MinSpareThreads 75
MaxSpareThreads 250
MaxClients 5000
ThreadsPerChild 25
MaxRequestWorkers 5000
MaxConnectionsPerChild 5000
</IfModule>
この構成で何が問題になる可能性があるかを誰かに教えてもらえますか?
Apacheはいくつかのプロセスを正常に終了しようとし、その間にハングするようです。 Apache( https://bz.Apache.org/bugzilla/show_bug.cgi?id=53555 )の問題か、アプリケーション自体の問題である可能性があります。
Apacheのサーバーステータスページを見れば簡単に確認できます。これを行うには、status.confApacheモジュールを有効にする必要があります。次に、your-server.org/server-statusに移動します。現在使用されている、または正常に終了しているすべてのプロセスとスレッド(「G」状態)が表示されます。消えない多くのGが必要な場合は、問題が見つかりました。これは次のようになります。
解決策は非常に簡単です。 MaxConnectionsPerChildを0に設定するか、コメントアウトします(mpm_event.conf)。これは、プロセスを再起動せずに、プロセスを続行させるだけです。プロセスを再起動すると、多くのGがスコアボードをいっぱいにし、最終的にApacheをクラッシュさせるという問題が発生するため、これは私たちのケースでは良いことです。
それがお役に立てば幸いです。
00_default_settings.confでEnableMMAP Offを試してください
このserverfault Q&A は、イベントmpmにバグがある可能性があることを示しています。少なくとも部分的な回避策の推奨設定:
StartServers 3
MinSpareServers 5
MaxSpareServers 10
ServerLimit 250
MaxRequestWorkers 250
MaxConnectionsPerChild 1000
KeepAlive Off
私も同じ問題を抱えていました。さまざまなApacheバージョンとMPMを試しました。
私はこれをMPMワーカーでたくさん得るようです。また、Apache2.2.2を使用してもエラーは再発しません。
CPanelを使用していますか?もしそうなら、/ upcp --forceを試して、StartServersを50のようなより高い量に増やしてください。