web-dev-qa-db-ja.com

MaxRequestWorkersではなく、スコアボードがいっぱいです

プロジェクトで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>

この構成で何が問題になる可能性があるかを誰かに教えてもらえますか?

12
user3393080

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をクラッシュさせるという問題が発生するため、これは私たちのケースでは良いことです。

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

4
Tomasz Kolonko

00_default_settings.confでEnableMMAP Offを試してください

0
user5821538

このserverfault Q&A は、イベントmpmにバグがある可能性があることを示しています。少なくとも部分的な回避策の推奨設定:

StartServers 3
MinSpareServers 5
MaxSpareServers 10
ServerLimit 250
MaxRequestWorkers 250
MaxConnectionsPerChild 1000
KeepAlive Off
0
moodboom

私も同じ問題を抱えていました。さまざまなApacheバージョンとMPMを試しました。

私はこれをMPMワーカーでたくさん得るようです。また、Apache2.2.2を使用してもエラーは再発しません。

CPanelを使用していますか?もしそうなら、/ upcp --forceを試して、StartServersを50のようなより高い量に増やしてください。

0
HostKing