Inhaltsverzeichnis
1. Wählen Sie das richtige MPM (Multi-Processing-Modul)
2. Optimieren Sie die Einstellungen für die Keep-Alive
3. Tune MPM -Ereigniseinstellungen (für Event MPM)
4. Aktivieren Sie die Komprimierung mit mod_deflate
5. Nutzen Sie das Caching
6. optimieren
7. Begrenzungsanforderung Overhead
8. Deaktivieren Sie unnötige Module
9. Verwenden Sie Reverse Proxy für dynamische Inhalte
10. Überwachung und Benchmark
Heim Betrieb und Instandhaltung Apache Apache Performance Tuning Best Practices

Apache Performance Tuning Best Practices

Aug 05, 2025 am 06:59 AM
java Programmierung

Verwenden Sie Event MPM für Workloads mit hoher Konsequenz, insbesondere bei PHP-FPM oder nur bei Bedarf von nicht-thread-sicheren Modulen. 2. Aktivieren Sie Keepalive mit MaxkeepaliveRequests auf 100 und Keepalivetimeout zwischen 2 und 5 Sekunden, um die Wiederverwendung von Verbindungen und die Ressourcenverwendung auszugleichen. 3. Konfigurieren Sie Ereignis -MPM -Einstellungen wie Startserver, Minsparethreads, MaxRequestworker und MaxConnectionSPerChild basierend auf dem verfügbaren RAM und dem Datenverkehr, um MaxRequestworker = Total RAM / Durchschnitts -Apache -Prozessgröße zu gewährleisten. 4. Aktivieren Sie mod_deflate, um textbasierten Inhalten wie HTML, CSS und JavaScript zu komprimieren und die Komprimierung für bereits komprimierte Dateien wie Bilder zu vermeiden. 5. Implementieren Sie das Caching mit mod_cache_disk für statische Inhalte und mod_expires für das Browser -Caching mit Ablaufregeln für Bilder, CSS und JavaScript. 6. Aktivieren Sie die SendFile und aktivieren Sie optional aktiviert, um die Leistung der Dateien durch Kernel-Ebene und Speicherzuordnung zu verbessern. 7. Stellen Sie Zeitüberschreitungen ein, limitRequestfields, limitRequestfieldSize und LimitRequestBody, um Missbrauch zu verhindern und DOS -Risiken zu verringern. 8. Deaktivieren Sie unbenutzte Module wie AutoIndex, Status und Info, um den Speicher und die CPU -Overhead zu reduzieren. 9. Verwenden Sie einen umgekehrten Proxy wie Nginx oder Lack oder konfigurieren Sie Apache mit PHP-FPM über mod_proxy_fcgi, um die statische und dynamische Inhaltsverhandlung zu trennen. 10. Die Leistung mit AB, HTOP, mod_status und Protokollen überwachen und die Änderungen an die Arbeitsbelastung, den Inhaltstyp und die Hardwarefunktionen mit Ereignis -MPM, Komprimierung, Caching und ordnungsgemäßem Worker -Tuning iteriert, die die wichtigsten Verbesserungen bereitstellen.

Apache Performance Tuning Best Practices

Die Apache -Leistungsstimmung ist für den effizienten Umgang mit hohem Verkehr, die Verringerung der Latenz und die optimale Verwendung von Serverressourcen von wesentlicher Bedeutung. Während Apache robust und flexibel ist, sind die Standardeinstellungen häufig konservativ und für Produktions -Workloads nicht optimiert. Im Folgenden finden Sie wichtige Best Practices, um die Leistung von Apache zu verbessern.

Apache Performance Tuning Best Practices

1. Wählen Sie das richtige MPM (Multi-Processing-Modul)

Das MPM bestimmt, wie Apache eingehende Anforderungen umgeht. Die Auswahl des richtigen basierend auf Ihrer Arbeitsbelastung und Hardware ist entscheidend.

  • Präpark : Am besten für die Kompatibilität mit nicht-thread-sicheren Bibliotheken (z. B. älterer PHP über mod_php). Verwendet mehrere Prozesse; Jeder behandelt eine Anfrage. Hochgedächtnisgebrauch, aber stabil.
  • Arbeiter : Verwendet eine Mischung aus Prozessen und Fäden. Mehr speichereffizient als Vorkörper. Gut für mäßigen Verkehr.
  • Veranstaltung : Am besten für Szenarien mit hoher Konsequenz. Griffen die Keepe-Alive-Verbindungen effizient, indem Sie Fäden befreien. Empfohlen für moderne Setups mit HTTP-Keep-Alive und SSL.

Empfehlung :

Apache Performance Tuning Best Practices
  • Verwenden Sie Event MPM , wenn Sie statische Inhalte bedienen oder PHP über PHP-FPM verwenden.
  • Verwenden Sie nur dann Vorkörper , wenn dies von Modulen wie mod_php erforderlich ist.

Um MPMS zu wechseln (auf Debian/Ubuntu):

 sudo a2dismod mpm_prefork
sudo a2enmod mpm_event
sudo systemctl starten Sie Apache2 neu

2. Optimieren Sie die Einstellungen für die Keep-Alive

Keep-Alive ermöglicht mehrere Anforderungen über eine einzelne TCP-Verbindung, wodurch der Verbindungsaufwand reduziert wird.

Apache Performance Tuning Best Practices

Schlüsselrichtlinien :

 Keepalive on
MaxkeepaliveRequests 100
Keepalivetimeout 5
  • Keepalive on : Ermöglicht anhaltende Verbindungen.
  • MaxkeepaliveRequests : maximale Anfragen pro Verbindung (100 ist angemessen).
  • Keepalivetimeout : Wie lange wartet Apache auf die nächste Anforderung (unter Verwendung von weniger Speicher).

Kompromiss : Zu hohe Zeitlimit hält Leerlaufverbindungen offen und verbraucht Serverressourcen. Erwägen Sie, dass Sie bei hohen Verkehrsstellen KeepAliveTimeout auf 2–5 Sekunden senken.


3. Tune MPM -Ereigniseinstellungen (für Event MPM)

Fein den Ereignis-MPM für Ihre Serverkapazität einstellen.

Beispielkonfiguration ( /etc/apache2/mods-available/mpm_event.conf ):

 <IFMODULE MPM_EVENT_MODULE>
    Beginnt 3
    Minsparethreads 75
    Maxsparethreads 250
    ThreadLimit 64
    Threadsperchild 25
    MaxRequestworker 400
    MaxConnectionSperchild 10000
</Ifmodule>

Erläuterung :

  • MaxRequestworker : Max -Anfragen (z. B. 400 = 16 Prozesse × 25 Threads jeweils).
  • MaxConnectionSperchild : Begrenzte Speicherlecks durch Recyclingprozesse nach einer Reihe von Anforderungen.

Faustregel : Setzen Sie MaxRequestWorkers basierend auf dem verfügbaren RAM:

 MaxRequestworker = Gesamt -RAM / Durchschnitts -Apache -Prozessgröße

Verwenden Sie ps aux | grep apache zur Schätzung der Prozessgröße.


4. Aktivieren Sie die Komprimierung mit mod_deflate

Reduzieren Sie die Bandbreite und verbessern Sie die Seitenladezeiten durch Komprimieren von Antworten.

Aktivieren und konfigurieren:

 <Ifmodule mod_deflate.c>
    AddoutputFilterByType Deflate Text/Plain
    AddoutputFilterByType Deflate Text/HTML
    AddoutputFilterByType Deflate Text/XML
    AddoutputFilterByType Deflate Text/CSS
    AddoutputFilterByType Deflate Application/XML
    AddoutputFilterByType Deflate Application/XHTML XML
    AddoutputFilterByType Deflate Application/JavaScript
    AddoutputFilterByType Deflate Application/X-JavaScript
</Ifmodule>

HINWEIS : Vermeiden Sie bereits komprimierte Dateien (z. B. Bilder, PDFs).


5. Nutzen Sie das Caching

Verwenden Sie mod_cache , mod_cache_disk oder mod_file_cache , um statische Inhalte zu cache.

Basic Disk Caching Beispiel:

 <Ifmodule mod_cache.c>
    Rückenscheibe /
    Cacheroot/var/cache/apache2/mod_cache
    CacheDefaultExpire 3600
    Cachemaxexpire 86400
</Ifmodule>

Betrachten Sie für dynamische Inhalte umgekehrte Proxys wie Lack oder verwenden Sie mod_cache mit CacheIgnoreHeaders .

Verwenden Sie alternativ das Browser -Caching über mod_expires :

 <IfModule mod_expires.c>
    Läuft aktiv auf
    Absageytype Image/JPG "Access plus 1 Jahr"
    ExpiresByType Text/CSS "Access plus 1 Monat"
    ExpiresByType Application/JavaScript "Access plus 1 Monat"
</Ifmodule>

6. optimieren

  • Aktivieren Sie SendFile :

     Aktiviertendfile auf

    Verwendet die Dateiübertragung auf Kernel-Ebene für statische Inhalte-faster und weniger cpu-intensiv.

  • Verwenden Sie die Speicherzuordnung (optional) :

     EnableMmap on

    Maps Dateien in den Speicher für einen schnelleren Zugriff (Verwendung mit Vorsicht auf Speicherbetriebssystemen).


7. Begrenzungsanforderung Overhead

Verschärfen Sie die Sicherheit und Leistung, indem Sie die Anforderungsgrößen und Auszeiten einschränken.

 Zeitüberschreitung 30
LimitRequestfields 100
LimitRequestfieldSize 8190
LimitRequestBody 10485760
  • Verhindert Missbrauch durch große Header oder Nutzlasten.
  • Reduziert das Risiko von DOS -Angriffen.

8. Deaktivieren Sie unnötige Module

Jedes geladene Modul verbraucht Speicher und CPU.

Deaktivieren Sie unbenutzte Module:

 sudo a2dismod autoIndex Status Info Ersatz

Behalten Sie nur das, was notwendig ist: rewrite , ssl , deflate , headers usw.


9. Verwenden Sie Reverse Proxy für dynamische Inhalte

Statische Inhalte in Nginx abladen oder Apache hinter einem umgekehrten Proxy wie Lack oder Nginx verwenden.

Alternativ können Sie Apache mit PHP-FPM ausführen:

  • Apache behandelt statische Dateien.
  • PHP-FPM verwaltet PHP-Anforderungen über mod_proxy_fcgi .

Dieses Setup verbessert die Parallelität und Stabilität.


10. Überwachung und Benchmark

Verwenden Sie Tools, um die Abstimmung zu validieren:

  • AB (Apache Bench) : ab -n 1000 -c 100 https://yoursite.com/
  • HTOP, PS, FREE : Speicher und CPU überwachen.
  • MOD_STATUS : Aktivieren Sie den Serverstatus für Echtzeit-Erkenntnisse.

Überprüfen Sie die Fehler- und Zugriffsprotokolle regelmäßig auf Engpässe.


Das Tuning von Apache ist nicht einsgröße. Beginnen Sie mit konservativen Veränderungen, überwachen Sie die Auswirkungen und iterieren. Die Veranstaltung MPM, ordnungsgemäße Arbeitergrenzen, Komprimierung und Caching liefern normalerweise die größten Gewinne. Passen Sie im Grunde genommen die Konfiguration mit Ihren Inhaltstypen, Verkehrsmustern und Hardware an.

Das obige ist der detaillierte Inhalt vonApache Performance Tuning Best Practices. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

PHP-Tutorial
1517
276
Was ist eine Linkedlist in Java? Was ist eine Linkedlist in Java? Aug 12, 2025 pm 12:14 PM

LinkedList ist eine bidirektionale verknüpfte Liste in Java, die Liste und Deque -Schnittstellen implementiert. Es ist für Szenarien geeignet, in denen häufig Elemente eingefügt und gelöscht werden. Insbesondere beim Betrieb an beiden Enden der Liste hat es eine hohe Effizienz, aber die Zufallszugriffsleistung ist schlecht und die Zeitkomplexität ist O (N). Einfügen und Löschen können O (1) an bekannten Stellen erreichen. Daher ist es geeignet, Stapel, Warteschlangen oder Situationen zu implementieren, in denen Strukturen dynamisch modifiziert werden müssen, und eignet sich nicht für readintensive Operationen, die häufig nach Index zugreifen. Die endgültige Schlussfolgerung ist, dass die LinkedList besser als ArrayList ist, wenn sie häufig geändert wird, aber weniger Zugriffe hat.

So verwenden Sie die HTTPClient -API in Java So verwenden Sie die HTTPClient -API in Java Aug 12, 2025 pm 02:27 PM

Der Kern der Verwendung des Javahttpclientapi besteht darin, einen Httpclient zu erstellen, einen httprequest zu erstellen und httPesponse zu verarbeiten. 1. Verwenden Sie httpclient.newhttpclient () oder httpclient.newbuilder (), um Zeitüberschreitungen, Proxy usw. zu konfigurieren, um Clients zu erstellen. 2. Verwenden Sie httprequest.newbuilder (), um URI, Methode, Kopfzeile und Körper zu setzen, um Anfragen zu erstellen. 3.. Senden Sie synchrone Anfragen über Client.send () oder asynchrone Anfragen über Client.sendasync (); 4. Verwenden Sie Bodyhandlers.Ofstr

Die besten IDES für Java -Entwicklung: eine vergleichende Überprüfung Die besten IDES für Java -Entwicklung: eine vergleichende Überprüfung Aug 12, 2025 pm 02:55 PM

Thebestjavaidein2024Dependyourneeds: 1.CHOOSEINTELLIJIDEAFORPROFESSIONAL, ENTERPRISE, Orull-StackDevelopmentDuetoitsSuperiorCodeIntelligence, Frameworkintegration, andtooling.2. Useclipseforhoxhensibilsibsibilität, LegacyPro-Eigenschaften, oderweigte, oderweigende, oderweilen, oderweilen, orwhenopenen-seourzatioten, legacyprojekts, orwhenopenen-seourzatioten, legacyprojekts, orwhenopenen-seourcatiatiox

Wie man Saiten in Java vergleicht Wie man Saiten in Java vergleicht Aug 12, 2025 am 10:00 AM

Verwenden Sie .Equals (), um den String -Inhalt zu vergleichen, da == nur Objektreferenzen und nicht tatsächliche Zeichen vergleichen; 2. Verwenden Sie .EqualSignoreCase () beim Vergleich des Ignorierens; 3.. Verwenden Sie .Compareto () bei alphabetisch sortierender und comparetoignorecase (), wenn Sie den Fall ignorieren; 4. Vermeiden Sie es, Strings anzurufen, die möglicherweise null sein können. Equals () sollte verwendet werden, um "buchstäblich" .Eequals (Variable) oder Objekte zu verwenden. Ausgleiche (STR1, STR2), um Nullwerte sicher zu verarbeiten; Kurz gesagt, achten Sie immer eher auf den Vergleich des Inhalts als auf Referenz,

Fix: Ethernet 'Nicht identifiziertes Netzwerk' Fix: Ethernet 'Nicht identifiziertes Netzwerk' Aug 12, 2025 pm 01:53 PM

RestartyourRouterandComputertoresolvetemporaryglitches.2.RunthenetworkrouBleshooterviathesystemTraytoAutomaticFixCommonissues.3.RewhewIpadDressusesusesusesusesuSuseingCommandpromptasadMinistratorByRunningipconfig/Release, Ipconfig/Reufreset und Netshwinset und Netschon/Rufe, Netshwinset und Netshwinset und NETSHNE und NETSETH und NETSETH und NETHN

Excel finden und ersetzen Sie nicht funktionieren Excel finden und ersetzen Sie nicht funktionieren Aug 13, 2025 pm 04:49 PM

CheckSearchsets -ähnliche "MatchentirecellContents" und "Matchcase" ByexpandingOptionssinfindandReplace, sorgen für "Lookin" IssettoValuesand "Innere" toCorrectScope;

Rand nicht retten Geschichte Rand nicht retten Geschichte Aug 12, 2025 pm 05:20 PM

Erstens, check "clearBrowsingDataonclose" isturnedoninsettingsandTurnitofftoensurehistoryISSAVE.2.

Bereitstellung einer Java -Anwendung Bereitstellung einer Java -Anwendung Aug 17, 2025 am 12:56 AM

Vorbereitungsdauerung von MajoringMavenorgradletobuildajarorwarfile, ExternalizingConfiguration

See all articles