Apache2 bleibt in unregelmäßigen Intervallen stehen

tux18

Member
Guten Morgen,

vielleicht gibt es unter euch ja Administratoren, die sich mit dem Apache2-Webserver sehr gut auskennen.
Ich habe seit einigen Monaten das Problem, dass der Webserver, den wir für div. interne Webseiten als Reverse-Proxy betreiben, stehen bleibt.

In den Error-Logs wird bis zum manuellen Neustart dann folgender Eintrag protokolliert:

[Mon Jan 13 06:25:02.350235 2020] [mpm_worker:error] [pid 17247:tid 3075056576] AH00288: scoreboard is full, not at MaxRequestWorkers
[Mon Jan 13 06:25:02.495867 2020] [mpm_worker:error] [pid 17247:tid 3075056576] AH00288: scoreboard is full, not at MaxRequestWorkers
[Mon Jan 13 06:25:02.495897 2020] [mpm_worker:notice] [pid 17247:tid 3075056576] AH00297: SIGUSR1 received. Doing graceful restart

Die Werte vom Worker habe ich bereits angepasst und angehoben, leider ergab dies auch keine Verbesserung.

<IfModule mpm_worker_module>
StartServers 25
MinSpareThreads 25
MaxSpareThreads 50
ThreadLimit 64
ThreadsPerChild 25
MaxRequestWorkers 250
MaxConnectionsPerChild 1000
</IfModule>

Bei der Hardware handelt es sich um eine virtuelle Maschine mit einem Prozessor und zwei Kernen sowie 8GB Arbeitsspeicher.

Unter folgendem Link ist außerdem noch ein (anonymisierter) Auszug vom server-status zu sehen. Dort hängen einige Prozesse auf "Waiting Reply (W)".
Vielleicht gibt es unter euch ja jemanden, der sich auskennt und ggf. anhand der o.g. Daten + Server-Status erkennen kann, warum der Apache2 seinen Dienst eingestellt hat.

https://fruitivemeat.htmlpasta.com/

Gruß
 
Ja,
ist ein Debian und kein *BSD-System, aber das sollte doch (hoffentlich) unabhängig davon sein?

Was genau wird aus der Apache2-Config benötigt?
 
Den worker sollte man mit mehreren Kernen betreiben. Wenn du auf einen Kern limitiert bist, nimm den prefork.
 
Mhm...ja. Ich würd auch erst mal updaten und dann gucken, wie es sich mit 4 Kernen verhält.
 
Zu den Versionen: Debian patcht gerne security und kritische Fixes zurück ohne die Versionsnummer zu ändern.

Zur Konfig:

<IfModule mpm_worker_module>
StartServers 25
MinSpareThreads 25
MaxSpareThreads 50
ThreadLimit 64
ThreadsPerChild 25
MaxRequestWorkers 250
MaxConnectionsPerChild 1000
</IfModule>

Das sieht alles sehr komisch aus. Du hast MaxRequestWorker auf 250, das wird aber nie erreicht, da du Threadlimit auf 64 hast. Zudem ist StartServers auf 25, was schon 25*25(threadsPerChild) Workerthreads wären, was deutlich über Threadlimit ist. Threadlimit muss zudem soweit ich weiß als erstes gesetzt werden.

Wieviel gleichzeitige Requests erwartest du auf der Maschine? Mach dir darüber mal gedanken, dann können wir das hier auf etwas vernünftiges anpassen.

LG
 
Zu den Versionen: Debian patcht gerne security und kritische Fixes zurück ohne die Versionsnummer zu ändern.

Zur Konfig:

<IfModule mpm_worker_module>
StartServers 25
MinSpareThreads 25
MaxSpareThreads 50
ThreadLimit 64
ThreadsPerChild 25
MaxRequestWorkers 250
MaxConnectionsPerChild 1000
</IfModule>

Das sieht alles sehr komisch aus. Du hast MaxRequestWorker auf 250, das wird aber nie erreicht, da du Threadlimit auf 64 hast. Zudem ist StartServers auf 25, was schon 25*25(threadsPerChild) Workerthreads wären, was deutlich über Threadlimit ist. Threadlimit muss zudem soweit ich weiß als erstes gesetzt werden.

Wieviel gleichzeitige Requests erwartest du auf der Maschine? Mach dir darüber mal gedanken, dann können wir das hier auf etwas vernünftiges anpassen.

LG

Moin,

was wäre denn eine sinnvolle Konfiguration bei einer CPU und vier Kernen?
Der Webserver läuft grad knapp 24h und ich hatte ca. 300.000 Zugriffe in der Zeit, sodass man von ca. 3,5 Zugriffen / Sekunde ausgehen kann.
Viel mehr wird es auch nicht werden, er stellt ein bisschen Mail, Nextcloud und ein kleines CRM-System da, wo auch nicht all zu viele Benutzer drauf rumorgeln.
 
Zu den Versionen: Debian patcht gerne security und kritische Fixes zurück ohne die Versionsnummer zu ändern.
Der Grund, warum ich von Debian weg bin, sind die uralten Versionen gewesen. Ich bin in Fehler gelaufen, die schon lange gepatcht waren, aber nie den Weg in "Stable" gefunden haben. Ich habe Funktionen benötigt, die seit "Jahren" bereitgestellt wurden, aber in Debian nie verfügbar waren. Das wird jetzt aber zu OT. Ich drücke die Daumen, dass es nur eine Konfigurationssache ist. :)
 
Moin,

was wäre denn eine sinnvolle Konfiguration bei einer CPU und vier Kernen?
Der Webserver läuft grad knapp 24h und ich hatte ca. 300.000 Zugriffe in der Zeit, sodass man von ca. 3,5 Zugriffen / Sekunde ausgehen kann.
Viel mehr wird es auch nicht werden, er stellt ein bisschen Mail, Nextcloud und ein kleines CRM-System da, wo auch nicht all zu viele Benutzer drauf rumorgeln.

Gut das ist ja nicht viel erstmal.

Default aus der Apacheseite ist:

ServerLimit 16
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25


Rhel hat da garnichts konfiguriert (ich nehme an das wird auf genau das default zurückfallen).
Ich würd das auch so übernehmen, die limitierende Größe hier ist "MAxClients", aber 150 sollte hier ausreichen.
 
danke @medV2 und an die Anderen.
Ich werde am WE die Konfiguration auf die Default-Werte zurücksetzen, der virtuellen Maschine mehr Kerne zur Verfügung stellen und das Update auf Buster durchführen.

Hoffe, dass es damit behoben ist.

Gruß
 
Zurück
Oben