In den letzten zwei Tagen habe ich eine Reihe von Apache-Servern erstellt. Jeder Server verfügt über 4 GB Speicher und verwendet den Prefork-Modus , ich habe die Apache 2.0.59-Konfigurationsdatei httpd.conf geändert:
Zitat
# Prefork MPM
# StartServers: Anzahl der zu startenden Serverprozesse
# MinSpareServers: Mindestanzahl an Serverprozessen, die freigehalten werden
# MaxSpareServers: maximale Anzahl von Serverprozessen, die freigehalten werden
# MaxClients: maximale Anzahl von Serverprozessen, die gestartet werden dürfen
# MaxRequestsPerChild: maximale Anzahl von Anfragen, die ein Serverprozess bedient
StartServer 10
MinSpareServers 10
MaxSpareServers 15
ServerLimit 2000
MaxClients 2000
MaxRequestsPerChild 10000
Überprüfen Sie die Anzahl der httpd-Prozesse (d. h. die Anzahl gleichzeitiger Anforderungen, die Apache im Prefork-Modus verarbeiten kann):
Linux-Befehl:
Zitat
ps -ef |. grep httpd |
Beispiel für ein Rückgabeergebnis:
1388
Zeigt an, dass Apache 1388 gleichzeitige Anfragen verarbeiten kann. Dieser Wert kann von Apache automatisch entsprechend der Auslastung angepasst werden. Der Spitzenwert jedes Servers in meiner Gruppe hat 2002 erreicht.
Überprüfen Sie die Anzahl gleichzeitiger Anfragen von Apache und seinen TCP-Verbindungsstatus:
Linux-Befehl:
Zitat
netstat -n |. awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
(Diese Aussage stammt von Ich habe es von Herrn Wang, technischer Leiter der Community Business-Abteilung von Sina Interactive, bekommen, was sehr gut ist)
Beispiel für ein Rückgabeergebnis:
LAST_ACK 5
SYN_RECV 30
GEGRÜNDET 1597
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057
SYN_RECV gibt die Anzahl der Anfragen an, die auf die Verarbeitung warten; ESTABLISHED gibt den normalen Datenübertragungsstatus an; TIME_WAIT gibt die Anzahl der Anfragen an, die verarbeitet wurden und auf das Ende des Timeouts warten.
Die Änderungen im TCP-Status sind in der folgenden Abbildung deutlich zu erkennen:
STATUS: BESCHREIBUNG GESCHLOSSEN: Keine Verbindung ist aktiv oder wird ausgeführt. LISTEN: Der Server wartet auf eingehende Anrufe. SYN_RECV: Eine Verbindungsanforderung ist eingetroffen und wartet auf Bestätigung. SYN_SENT: Die Anwendung wurde gestartet und öffnet eine Verbindung. ESTABLISHED: Normaler Datenübertragungsstatus. FIN_WAIT1: Die Anwendung meldet „Abgeschlossen“. FIN_WAIT2: Die andere Seite hat der Freigabe zugestimmt. ITMED_WAIT: Warten, bis alle Pakete sterben. CLOSING: Beide Seiten versuchen, gleichzeitig zu schließen. TIME_WAIT: Die andere Seite hat eine Freigabe initialisiert. LAST_ACK: Warten, bis alle Pakete sterben