Frage Was bedeutet "AH00485: Anzeigetafel ist voll, nicht bei MaxRequestWorker"?


Meine Umgebung

  • CentOS 6.4 X86_64
  • Apache 2.4.4
  • PHP 5.4.16 (FPM)
  • 2 Intel Xeon E5-2620 @ 2.00GHz (8 Kern, 16 Threads in jedem Prozessor)
  • 48 GB RAM Speicher registriert.
  • 3 Festplatte 15RPM 145 GB in RAID0 (von BIO

Interessante Variablen

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

Apache-Serverstatus

Serverversion: Apache / 2.2.4 (Unix) OpenSSL / 1.0.1e mod_fastcgi / mod-fastcgi-SNAP-0910052141
  Server gebaut: 24. Mai 2013 16:48:07


Aktuelle Uhrzeit: Montag, 17-Jun-2013 09:48:11 COT
  Neustart Zeit: Montag, 17-Jun-2013 08:35:14 COT
  Übergeordnete Serverkonfiguration Generation: 1
  Übergeordnetes Server MPM-Generation: 0
  Server-Betriebszeit: 1 Stunde 12 Minuten 57 Sekunden
  Serverlast: 0,05 0,10 0,09
  Zugriffe insgesamt: 14144 - Gesamtverkehr: 349,7 MB
  CPU-Auslastung: u.28 s.25 cu0 cs0 - .0121% CPU-Auslastung
  3,23 Anfragen / Sek. - 81,8 kB / Sek. - 25,3 kB / Anfrage
  1 Anfragen werden derzeit bearbeitet, 191 freie Mitarbeiter

  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

Fehlerprotokoll

Die Fehlermeldung ist

[Mo Jun 17 09: 32: 45.680842 2013] [mpm_event: error] [pid 8574: tid 140185091581760] AH00485: Anzeigetafel ist voll, nicht bei MaxRequestWorkers

Dies erscheint alle paar Sekunden. Ich verstehe es nicht. Wie kann ich es reparieren?


23
2018-06-17 14:53


Ursprung




Antworten:


Wir hatten das gleiche Problem auf Apache 2.4.6. Nachdem wir den Server beobachtet und die Einstellung für einige Stunden angepasst haben, scheint uns Apache einen Fehler zu haben. Was scheinbar geschieht ist, dass die Serverprozesse gelegentlich in die G Zustand (Anm. beendet) und startet neu, um neue Anfragen zu akzeptieren, das ist normal. Was nicht normal ist, ist, dass es aus irgendeinem Grund einige Minuten dauern kann, um neu zu starten. Wenn Sie nur ein paar Server Prozesse laufen haben und sie alle gehen in die G Gleichzeitig wird Ihre Anzeigetafel ausgefüllt und Sie können keine weiteren Anfragen mehr stellen.

Was wir getan haben, war die Anzahl der Server zu erhöhen, so dass es weniger eine Chance gibt, dass sie alle in die G gleichzeitig angeben. Stellen Sie außerdem sicher, dass Sie mindestens 25 Threads zuweisen (MaxRequestWorkers) für jeden Serverprozess, weil dies der Standard zu sein scheint (d. h. wenn 5 Servers x 25 ThreadsPerChild = 125 MaxRequestWorkers). Du kannst ändern ThreadsPerChild Wenn Sie möchten, haben wir es standardmäßig verlassen. Wenn Sie nicht genügend Threads zuweisen, werden die zusätzlichen Server nicht gestartet. Wir sind gegangen MinSpareThreads mit dem Standardwert von 25 und dem Standardwert für MaxSpareThreads Das ist 75. Wenn Sie diese Einstellungen ändern, wird der Wert für MaxSpareThreads muss größer oder gleich der Summe von sein MinSpareThreads und ThreadsPerChild. Ebenfalls MaxRequestWorkers muss gleich oder kleiner als sein ServerLimit.

Hier ist, was für uns gearbeitet hat, aber es ist möglicherweise nicht die beste Konfiguration für Sie.

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

Bearbeiten: Dies ist bestätigt Fehler im httpd-Modul mpm_event, das möglicherweise nicht durch Konfiguration repariert werden kann.
Das verbunden Fehlerbugger Der Eintrag enthält einen vermuteten Patch und weitere Diskussionen darüber, wie dies zu beheben ist, bis eine neue Version des Ereignismoduls offiziell veröffentlicht wird.


18
2017-09-03 22:35



Ihre MaxConnectionsPerChild Einstellung ist viel zu niedrig für den Produktionseinsatz. Darüber hinaus ist es nur unter Windows möglich, es auf einen anderen Wert als 0 zu setzen, da intern Speicher verloren geht. - rustyx
Apache error_log gibt auch Hinweise: MaxRequestWorkers of 40 is not an integer multiple of ThreadsPerChild of 25, decreasing to nearest multiple 25 - dhaupin
MaxSpareServers / MinSpareServers sind nicht auf mpm_event anwendbar. Ich bin nicht sicher, was du hier meintest, weil die Zahlen viel zu niedrig sind, um MaxSpareThreads / MinSpareThreads zu sein. - Hamish Moffatt
Auch dieses Problem auf Debian bei der Apache2 Log-Rotation konfrontiert. Beziehen auf support.plesk.com/hc/en-us/articles/... - Yves Martin
Der in dieser Antwort erwähnte Patch wurde in 2.4.25 zusammengeführt. Ich bin hier, weil ich das Problem habe, obwohl ich 2.4.25 verwende. Offenbar erschien es bei einem von logrotate ausgelösten Reload und die Prozesse schreiben weiter error.log.1. error.log erwähnt nur das Nachladen. - Jérôme


Das gleiche Problem sehen.

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 

Wir können dieses Verhalten insbesondere dadurch verursachen, dass wir Apache neu laden.

Was wir dann sehen, sind ein paar alte Prozesse, die nicht aufhören:

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

Beachten Sie die älteren und neueren PIDs und Startzeiten. ^^

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

2
2018-03-17 11:55