ServerLimit- und MaxClient-Problem

7

Ich habe versucht, meine MaxClients in Apache für eine Website mit ziemlich hohem Datenverkehr zu erhöhen.

Aber ich erhielt immer wieder diesen Fehler:

WARNUNG: MaxClients von 565 überschreitet den ServerLimit-Wert von 256 Servern.
 Verringern von MaxClients auf 256. Informationen zum Erhöhen finden Sie im ServerLimit
 Richtlinie.
Syntax OK

Nach einigem Suchen habe ich Folgendes hinzugefügt:

    StartServer 5
    MinSpareServer 15
    MaxSpareServer 30
    ServerLimit 565
    MaxClients 565
    MaxRequestsPerChild 2000

Nach einem ordnungsgemäßen Neustart trat die Warnung nicht auf und alles schien in Ordnung zu sein.

Nach dem Überprüfen meines Apache error.log ist die Warnung jedoch weiterhin vorhanden.

** [Hinweis] Anmutiger Neustart angefordert, Neustart durchgeführt
WARNUNG: MaxClients von 565 überschreitet den ServerLimit-Wert von 256 Servern.
 Verringern von MaxClients auf 256. Informationen zum Erhöhen finden Sie im ServerLimit
 Richtlinie.
** [warn] WARNUNG: Versuch, ServerLimit zu ändern, wird beim Neustart ignoriert

Würde sich das genommene ServerLimit auswirken? als der Graceful Neustart funktionierte ... Kann jemand etwas Licht ins Dunkel bringen?

Prost!

williamsowen
quelle
2
Als Randnotiz hat "MaxRequestsPerChild"! = 0 einen Einfluss darauf, wie häufig jeder Apache-Prozess recycelt wird. 2000 ist wirklich niedrig (beginnen Sie mit 20.000)! Das einzige Interesse dieser Einstellung ist die Begrenzung von Speicherlecks, falls dies passieren sollte. Bitte ändern Sie diese Einstellung!
Shadok

Antworten:

14

Ich denke, Sie müssen httpd stoppen und starten (damit der httpd-Prozess "master" gestoppt und gestartet wird, nicht nur die untergeordneten Prozesse). Aus dem Eintrag der Apache-Dokumentation zu ServerLimit :

"Alle Versuche, diese Anweisung während eines Neustarts zu ändern, werden ignoriert, aber MaxClients können während eines Neustarts geändert werden."

Meulop
quelle
8

Sie müssen tatsächlich zwei Dinge sicherstellen, damit dies wirksam wird:

  • Starten Sie Apache neu, anstatt nur neu zu laden
  • sicherzustellen , dass ServerLimitkommt vor MaxClients in der Apache - Konfiguration, sonst Apache liest MaxClientszuerst und produziert die gleichen Fehler

Es gibt andere sehr offensichtliche Einschränkungen, z. B. sicherzustellen, dass es nicht am falschen Ort ist, beispielsweise in einem <If>Block, der nicht gelesen wird.

Mandible79
quelle
4

apachectl gracefulwird nicht funktionieren, desto wichtiger ist, dass apachectl restartauch nicht funktioniert.

Die Lösung ist /etc/init.d/httpd restartoderservice httpd restart

Putnik
quelle
1
Im Falle von Ubuntu: service apache2 restart
Slavik