fragen stichworte

Apache Prefork MaxClients darf 256 nicht überschreiten

Ich verwalte einen Centos 6.6-Server (mit abgelaufener Lizenz von cpanel/vielleicht ist es nicht wichtig) mit 8 Kernen und 64 GB RAM. Mein HTTP-Server wird sehr langsam, wenn er zwischen 250 und 300 gleichzeitigen Verbindungen erreicht.

Als ich über die Konfiguration von mpm prefork als Lösung zur Steigerung der Serverleistung herausgefunden habe, habe ich nach den Parametern in der Datei httpd.conf und allen darin enthaltenen Dateien gesucht, aber es war nichts dabei. Es sieht so aus, als würde mein Apache Standard-PMP-Parameter verwenden.

Ich habe also versucht, eine neue Konfiguration hinzuzufügen, und habe über meine mod_status-Webseite einige Änderungen in der maximalen Anzahl von Clients festgestellt. Wenn ich Werte für ServerLimit und MaxClients unter 256 eingebe, ändert sich die Server-Statusanzeige, aber wenn ich versuche, einen Wert größer als 256 zu versuchen, ist dies der Fall stoppt einfach bei 256.

Hier ist eine kurze Version der Server-Status-Seite, wobei MaxClients und ServerLimit auf 257 gesetzt sind, es werden jedoch genau 256 Slots angezeigt 4 Zeilen mit 64 Arbeitern. copmare mit http://apache.org/server-status

Server Version: Apache/2.4.10 (Unix) OpenSSL/1.0.1e-fips mod_bwlimited/1.4
Server MPM: prefork
Server Built: Jan 23 2015 21:04:30

--------------------------------------------------------------------
Current Time: Thursday, 12-Feb-2015 19:15:49 CET
Restart Time: Thursday, 12-Feb-2015 19:13:41 CET
Parent Server Config. Generation: 266
Parent Server MPM Generation: 265
Server uptime: 2 minutes 8 seconds
Server load: 0.76 0.66 0.63
Total accesses: 7771 - Total Traffic: 296.0 MB
CPU Usage: u3.76 s.62 cu77.6 cs7.05 - 69.6% CPU load
60.7 requests/sec - 2.3 MB/second - 39.0 kB/request
256 requests currently being processed, 0 idle workers

WWWWWKWKWKWWRRWWWKKWKKWWWKKWWWCKKKWWWWWKKWCWWWWWKKCWWKKWKCWKRCWW
WWWKKKKKWKWKWWWCWWKKWWRWKKRWWCWKWWWWKKKKKKWKCKWKKKKKWCWKCWWWKWRW
KWKKCKKKWKWKWWKLWWWKWWKCCCWKWWKKKKKWKWWKWWKKKWKWWCCRKKCCWKKWKWCW
CWKKRKKWWKRKKWWWWKWWWKWWKKWKKKWWWKWWWKLKWWKWWKKKKWWWKWWKRKWKWCWW

Wie kann ich dieses Problem lösen? Eigentlich muss ich die Prefork-Parameter anpassen, um gleichzeitig 10000 Clients bedienen zu können. Die Verwendung von NGINX zum Bereitstellen statischer Dateien ist für mich nicht möglich.

Ich möchte auch zur Laufzeit weitere Informationen zur MPM-Konfiguration erhalten.

Irgendwelche Hinweise?


Bearbeiten: Hier ist der Abschnitt der mpm-Konfiguration, den ich hinzugefügt habe

<IfModule prefork.c>
    Mutex default mpm-accept

# BEGIN : CUSTOM CONFIGURATION - all the following code is added by me
#    StartServers         6
#    MinSpareServers      6
#    MaxSpareServers     12

## Whatever the value (> 256) I enter for those two parameters, it doesn't exceed 256 in runtime (as shown in server-status page)
    ServerLimit        512 
    MaxClients         512
# END : CUSTOM CONFIGURATION
</IfModule>

Mit den beiden oben genannten unkommentierten Parametern konnte ich nicht herausfinden, wie der 256-Grenzwert erhöht werden kann. Fehlt etwas?

antworten

Ich habe das Problem gelöst.

Das Problem: ServerLimit und MaxClients Werte höher als 256 werden nicht wirksam, sie bleiben in 256. Jedes Mal, wenn ich Dinge in der httpd.conf ändere, starte ich Apache mit dem Befehl:

# httpd restart

Nichts hat sich wirklich verändert.

Die Lösung: Stellen Sie sicher, dass httpd vollständig stoppt und dann erneut startet. Der Befehl, der für mich anstelle des obigen funktionierte:

#httpd stop
#httpd start

Es sieht so aus, als ob alle Apache-Server-Instanzen gestoppt werden sollten, um die neuen Grenzwerte für MPM zu berücksichtigen.

Danke für deine Antworten und korrigiere mich, wenn ich falsch liege.