Heim > php教程 > PHP开发 > Apache-Leistungsoptimierung (6)

Apache-Leistungsoptimierung (6)

黄舟
Freigeben: 2016-12-21 11:28:37
Original
1507 Leute haben es durchsucht

Beispiel für geschätzte Parameter (zu Referenzzwecken, nicht unbedingt für unsere Situation geeignet):
Die standardmäßige maximale Benutzerzahl von Apache beträgt 256: Diese Konfiguration ist ein sehr gutes Manko in der Zeit, in der der Serverspeicher noch knapp ist 256 MB Einstellungen speichern, aber mit dem starken Rückgang der Speicherkosten ist die Speicherkonfiguration von Servern an großen Standorten heute im Allgemeinen mehr als eine Größenordnung höher als damals. Daher ist die harte Grenze von 256 Prozessen für eine Maschine mit 1 GB Speicher zu verschwenderisch, und die weiche Obergrenze max_client von Apache ist durch HARD_SERVER_LIMIT begrenzt. Wenn der WEB-Server-Speicher größer als 256 MB ist, sollte Apaches HARD_SERVER_LIMIT erhöht werden. Nach persönlicher Erfahrung: 2560 kann bereits die Kapazitätsplanung der meisten Server mit weniger als 2G Speicher erfüllen

Ein Apache + mod_php-Server: Ein Apache-Prozess benötigt im Allgemeinen 4M Speicher
Daher in einer Maschine mit 1G Speicher Oben: apache_max_process_with_good_perfermance < (1g / 4m) * 2 = 500
apache_max_process = 500 * 1,5 = 750
Planen Sie Ihre Anwendung so, dass der Dienst möglichst unter 500 Prozessen läuft, um eine relativ hohe Effizienz aufrechtzuerhalten Die Soft-Cap von set Apache liegt bei 800.
Beispiel 2:
Ein Apache + mod_resin-Server: Ein Apache-Prozess erfordert im Allgemeinen 2M Speicher
Auf einer Maschine mit 2G Speicher:
Apache_max_process_with_good_perfermance < (2g / 2m ) * 2 = 2000
apache_max_process = 2000 * 1.5 = 3000
--prefix=/another_driver/apache/: Es wird empfohlen, den Apache-Dienst auf einem anderen Treibergerät zu installieren, da die Festplatte häufig das Gerät mit der niedrigsten Lebensdauer des Systems ist : Die vollständige Trennung von Dienstdaten und Betriebssystem verbessert nicht nur die Zugriffsgeschwindigkeit auf Daten, sondern, was noch wichtiger ist, erleichtert System-Upgrades, Anwendungssicherungs- und Wiederherstellungsprozesse erheblich.
--shared-module=max: Die Verwendung dieser dynamischen Lademethode zum Laden von Submodulen führt zu einem Leistungsabfall von 5 %. Die Vorteile einer standardisierten Installation und Wartung sind jedoch weitaus größer. Unsere Anwendung ist relativ fest und es wird empfohlen, statisch zu verwenden.
grep -v "#" httpd.conf.default >httpd.conf
#Maximale Anzahl von Dienstprozessen: Wird gemäß der Vorhersage der Dienstkapazität festgelegt
MaxClients 256 => 800
Andere Apache-Leistungsoptimierung Konfiguration:
HostnameLookups aus
Ein führt zu Verzögerungen, da für jede Anfrage eine DNS-Abfrage erforderlich ist.
Optionen FollowSymLinks
Um die beste Leistung zu erzielen und auf den Schutz symbolischer Links zu verzichten, können Sie FollowSymLinks an den erforderlichen Stellen festlegen und auf die Verwendung von SymLinksIfOwnerMatch verzichten.
AllowOverride None
Wenn der URL-Bereich eine Überschreibung zulässt (normalerweise mit .htaccess-Datei), Apache versucht, .htaccess für jede Dateinamenskomponente zu öffnen.
DirectoryIndex index.cgi index.pl index.shtml index.html
Die am häufigsten verwendeten sollten nicht verwendet werden Platzhalter und verwenden Sie eine vollständige Liste.
MMAP aktivieren aus
Wenn Apache 2.0 den Inhalt der gesendeten Datei durchsuchen muss, z. B. bei der Verarbeitung serverseitiger Includes, wenn das Betriebssystem irgendeine Form von mmap(2) unterstützt, Anschließend wird eine Speicherzuordnung für diese Datei durchgeführt.
Auf einigen Plattformen kann die Speicherzuordnung die Leistung verbessern, aber in einigen Fällen verringert die Speicherzuordnung die Leistung und beeinträchtigt sogar die Stabilität von httpd. Für unsere Anwendung ist es angemessener, die Speicherzuordnung zum Senden von Dateien zu deaktivieren.
mod_status und ExtendedStatus Off
Wenn Apache beim Kompilieren mod_status einschließt und ExtendedStatus On zur Laufzeit festgelegt ist, ruft Apache gettimeofday(2) zweimal für jede Anfrage (oder abhängig vom Betriebssystem) auf, wobei times(2) aufgerufen wird. und (vor 1.3) mehrere zusätzliche time(2)-Aufrufe, um Zustandsdatensätze mit einem Zeitstempel zu versehen. Um die beste Leistung zu erzielen, können Sie ExtendedStatus deaktivieren (dies ist auch die Standardeinstellung).
Passen Sie die Parameter für die Unterbrechung der TCP-Verbindung an.
Fügen Sie in /etc/sysctl.conf Folgendes hinzu:
net.inet.tcp .msl=2000
net.inet.tcp.always_keepalive=0

Die oben genannten Einstellungen verhindern standardmäßig, dass TCP-Verbindungen im Keep Alive-Modus hergestellt werden, und vermeiden eine große Anzahl inaktiver Verbindungen, die das Betriebssystem verbrauchen
Ressourcen; zusätzlich TCP TIME_WAIT Wartezeit Die Zeit wird ebenfalls von 60 Sekunden auf 4 Sekunden reduziert.
Passen Sie die vom UFS-Dirhash zulässige Speichernutzung an
vfs.ufs.dirhash_maxmem=67108864 (Diese Einstellung ist automatisch in 5.3p14 enthalten)

Diese Einstellung erhöht den Betriebssystem-Standardwert um das 32-fache.
Deaktivieren Sie KeepAlive in der Apache-Konfiguration:
Bearbeiten Sie /usr/local/etc/apache2/httpd.conf und ändern Sie
KeepAlive On
in
KeepAlive Off
bei starker Auslastung auf dem Server , die oben genannten Einstellungen reduzieren die Anzahl gleichzeitiger Verbindungen zu httpd von etwa 2200 auf weniger als 400
. Und verbessern Sie effektiv die Reaktionszeit. Die oben genannten Einstellungen wurden bereits (ca. 3 Wochen) auf einige Maschinen angewendet
Es kann grundsätzlich bestätigt werden, dass diese Einstellungen keine für Benutzer wahrnehmbaren negativen Auswirkungen haben und auch die Reaktionszeit des Dienstes. Es wird daher empfohlen, dass alle Online-Systeme die oben genannten Einstellungen anwenden.
Spezifische technische Details
Die derzeit online verfügbare FreeBSD 5.3-Version (unabhängig vom Patchlevel) ist in den SINAMAIL-Kernel integriert
ACCF_HTTP hat die Aufgabe, die HTTP-Anfrage nach Abschluss vom Client an die Anwendung zu senden und so den
Ressourcenverbrauch zu reduzieren, der dadurch verursacht wird, dass httpd aufgrund eines langsamen Client-Netzwerks vorzeitig auf Verbindungen wartet.
Nach der Deaktivierung von KeepAlive hat der Client eine größere Chance, gleichzeitige Anfragen zu stellen, wenn mehrere Ressourcen angefordert werden. Dadurch
werden die Auswirkungen von Verzögerungen, die durch Probleme wie Paketverlust auf dem Link beim Herunterladen anderer Ressourcen verursacht werden, abgeschwächt. Nach der Verkürzung des
TCP-Fragmentierungszeitlimits wird die Wartezeit bis zum Schließen der Verbindung verkürzt und die hergestellte Verbindung wird stabiler.
Der standardmäßige maximale Dirhash-Speicher beträgt 2 MB. Die tatsächliche Nutzung liegt derzeit auf Produktionssystemen normalerweise bei etwa 16–20 MB
. Durch die Erweiterung wird die Zugriffsleistung auf Dateien im selben Verzeichnis verbessert.

Einfacher Leistungstest: (Es wird empfohlen, verschiedene Konfigurationsparameter separat zu testen, um die besten Optimierungsparameter zu finden)
Verwenden Sie Apaches eigenen AB zum Testen. Wenn Sie ihn selbst testen müssen, können Sie dies tun.
[yangbin1@vHost-RH9 apache]$ ./bin/ab -n 10000 -c 100 http://10.210.128.189:7981/
Dies ist ApacheBench, Version 2.0.40-dev <$Revision : 1.121.2.8 $> Apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/
Benchmarking 10.210.128.189 (haben Sie Geduld)
1000 Anfragen abgeschlossen
2000 Anfragen abgeschlossen
3000 Anfragen abgeschlossen
4000 Anfragen abgeschlossen
5000 abgeschlossen Anfragen
6000 Anfragen abgeschlossen
7000 Anfragen abgeschlossen
8000 Anfragen abgeschlossen
9000 Anfragen abgeschlossen
10000 Anfragen abgeschlossen

Serversoftware: Apache/2.0.49
Server-Hostname ) Für Tests benötigte Zeit: 20,756253 Sekunden
Vollständige Anfragen: 10000
Fehlgeschlagene Anfragen: 0
Schreibfehler: 0
Gesamtübertragung: 19192048 Bytes
Übertragenes HTML: 14653184 Bytes
Anfragen pro Sekunde: 481,78 [#/s] (Mittelwert)
Zeit pro Anfrage: 207,563 [ms] (Mittelwert)
Zeit pro Anfrage: 2,076 [ms] (Mittelwert, über alle gleichzeitigen Anfragen)
Übertragungsrate: 902,96 [Kbytes/Sek.] empfangen
Verbindungszeiten (ms)
Min. Mittelwert[+/-SD] Median Max
Verbindung: 0 78 60,7 99 554
Verarbeitung: 20 125 57,8 114 1149
Warten: 5 111 53,2 104 869
Gesamt: 47 204 84,4 214 1303
Prozentsatz der Anfragen, die innerhalb einer bestimmten Zeit (ms) bearbeitet wurden
50 % 214
66 % 218
75 % 220
80 % 223
90 % 264
95 % 302
98 % 447
99 % 530
100 % 1303 (längste Anfrage)
Analyse der Testergebnisse: Noch keine .

Das Obige ist der Inhalt der Apache-Leistungsoptimierung (6). Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage