「AH00485:MaxRequestWorkersではなく、スコアボードがいっぱいです」の意味は何ですか?


25

私の環境

  • CentOS 6.4 X86_64
  • Apache 2.4.4
  • PHP 5.4.16(FPM)
  • 2 x 2.00GHz Intel Xeon E5-2620(8コア、各プロセッサーに16スレッド)
  • 48GB RAM登録メモリ。
  • RAID0の3ハードディスク15RPM 145GB(BIOによる

興味深い変数

    <IfModule mpm_event_module>
        StartServers             2
        ThreadLimit             196
        MinSpareThreads         96
        MaxSpareThreads        192
        ThreadsPerChild         96
        MaxRequestWorkers      192
        MaxConnectionsPerChild   96
    </IfModule>

Apacheサーバーのステータス

サーバーのバージョン:Apache / 2.2.4(Unix)OpenSSL / 1.0.1e mod_fastcgi / mod-fastcgi-SNAP-0910052141
Server Built:May 24 2013 16:48:07


現在の時刻:2013年6月17日月曜日09:48:11 COT
再起動時刻:2013年6月17日月曜日08:35:14 COT
親サーバー設定。世代:1
親サーバーMPM世代:0
サーバー稼働時間:1時間12分57秒
サーバー負荷:0.05 0.10 0.09
合計アクセス:14144-合計トラフィック:349.7 MB
CPU使用率:u.28 s.25 cu0 cs0-.0121%CPU負荷
3.23リクエスト/秒-81.8 kB /秒-25.3 kB /
リクエスト現在処理中の1リクエスト、191アイドルワーカー

  PID | Connections       | Threads     | Async connections
      | total | accepting | busy | idle | keep-alive | closing
  ==============================================================
18997 | 3     | yes       | 1    | 95   | 0          | 3
18485 | 0     | yes       | 0    | 96   | 0          | 0
  ==============================================================
Sum   | 3     |           | 1    | 191  | 0          | 3

エラーログ

エラーメッセージは

[月6月17日09:32:45.680842 2013] [mpm_event:error] [pid 8574:tid 140185091581760] AH00485:MaxRequestWorkersではなく、スコアボードがいっぱいです

これは数秒ごとに表示されます。わかりません。どうすれば修正できますか?

回答:


18

Apache 2.4.6でも同じ問題が発生しました。サーバーを監視し、数時間設定を調整した後、Apacheにバグがある可能性があります。発生しているように見えるのは、サーバープロセスが時々G状態になり(正常に終了)、再起動して新しい要求を受け入れることです。これは正常です。普通ではないのは、何らかの理由でこれが再起動するのに数分かかることがあるということです。実行しているサーバープロセスが少数で、すべてがG同時に状態になると、スコアボードがいっぱいになり、それ以上リクエストをサーバーできなくなります。

サーバーの数を増やして、サーバーがすべてG同時に状態になる可能性を少なくしました。またMaxRequestWorkers、各サーバープロセスに少なくとも25スレッド()を割り当てるようにしてください。これはデフォルトのようです(つまり、5 Serversx 25 ThreadsPerChild= 125の場合MaxRequestWorkers)。必要にThreadsPerChild応じて変更できますが、デフォルトのままにしました。十分なスレッドを割り当てないと、追加のサーバーは起動しません。我々は左MinSpareThreads25で、デフォルト値とするために、デフォルトでMaxSpareThreadsこれらの設定を変更した場合は、の値が75であるMaxSpareThreads以上の和に等しくなければなりませんMinSpareThreadsThreadsPerChild。またMaxRequestWorkers、以下でなければなりませんServerLimit

これが私たちのために働いたものですが、それはあなたにとって最良の構成ではないかもしれません。

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

編集:これはhttpdのmpm_eventモジュールで確認されているバグであり、構成では修正できない可能性があります。
リンクされたバグトラッカーエントリには、推定パッチと、イベントモジュールの新しいバージョンが正式にリリースされるまでこれを修正する方法についての詳細な議論があります。


あなたのMaxConnectionsPerChildセッティングは、生産使用のための方法は低すぎます。さらに、0以外に設定することは、メモリを内部的にリークするため、Windowsでのみ行うことを意図しています。
rustyx

Apacheのerror_logにもヒントを与える:MaxRequestWorkers of 40 is not an integer multiple of ThreadsPerChild of 25, decreasing to nearest multiple 25
dhaupin

1
MaxSpareServers / MinSpareServersは、mpm_eventには適用されません。数値がMaxSpareThreads / MinSpareThreadsには低すぎるため、ここで何を意味したのかわかりません。
ハミッシュモファット

また、Apache2ログローテーションでDebianでこの問題に直面しました。support.plesk.com/hc/en-us/articles/…を
Yves Martin

この回答で言及されたパッチは、2.4.25でマージされました。2.4.25を使用していますが、問題があるためここにいます。どうやら、logrotateによってトリガーされたリロードに現れ、プロセスは書き込みを続けますerror.log.1error.logリロードについてのみ言及しています。
ジェローム

3

同じ問題を見る。

Apache 2.4.7-1ubuntu4.4 on Ubuntu 14.04
Server Version: Apache/2.4.7 (Ubuntu)
Server MPM: event
Server Built: Mar 10 2015 13:05:59 

特に、Apacheをリロードすることでこの動作を引き起こすことができます。

すると、停止しない古いプロセスがいくつか表示されます。

root     28192  0.0  0.8 103772  8648 ?        Ss   Mar16   0:03 /usr/sbin/apache2 -k start
www-data  2530  0.3  2.1 865188 21516 ?        Sl   06:26   0:54  \_ /usr/sbin/apache2 -k start
www-data  2531  0.2  2.1 865436 21892 ?        Sl   06:26   0:51  \_ /usr/sbin/apache2 -k start
www-data  3299  0.3  2.0 864140 20628 ?        Sl   06:46   0:51  \_ /usr/sbin/apache2 -k start
www-data  7305  0.3  2.1 865100 21504 ?        Sl   08:36   0:37  \_ /usr/sbin/apache2 -k start
www-data 11952  0.2  1.8 863004 19268 ?        Sl   10:46   0:06  \_ /usr/sbin/apache2 -k start
www-data 13284  0.0  0.6 103772  6692 ?        S    11:18   0:00  \_ /usr/sbin/apache2 -k start
www-data 13553  2.1  2.0 866156 21248 ?        Sl   11:23   0:01  \_ /usr/sbin/apache2 -k start

「古い」および「新しい」PIDと開始時間に注意してください。^^

PID Connections     Threads Async connections
total   accepting   busy    idle    writing keep-alive  closing
7305    14  no  0   0   0   0   0
2530    13  no  0   0   0   0   0
3299    7   no  0   0   0   0   0
13553   65  no  17  8   0   25  25
2531    15  no  0   0   0   0   0
11952   10  no  0   0   0   0   0
Sum 124     17  8   0   25  25

GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
GGGGGGGGGGGW_WWWW__W_W_W_WWWWWWW__WWGGGGGGGGGGGGGGGGGGGGGGGGGGGG
GGGGGGGGGGGGGGGGGGGGGG

0

レプリカデータベースの1つがオフラインになり、タイムアウトし始めたときに、これを確認し始めました。これにより、Apacheで膨大な数のスレッドが結び付けられました。

おそらく通常のケースではありませんが、このエラーを見る他の人の助けになることを期待して、これをキヤノンに提出します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.