Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So optimieren Sie den Nginx-Kernel mit hoher Parallelität

So optimieren Sie den Nginx-Kernel mit hoher Parallelität

WBOY
WBOYnach vorne
2023-05-15 17:52:061009Durchsuche

Was ist hohe Parallelität? Es wird für Webserver verwendet, die hohen gleichzeitigen Zugriff unterstützen. Daher müssen die Linux-Kernel-Parameter geändert werden, damit Nginx eine höhere Leistung erzielen kann Nehmen Sie Anpassungen entsprechend den Geschäftsmerkmalen vor. Wenn Nginx als statischer Webinhaltsserver, Reverse-Proxy oder Server zur Bereitstellung eines Komprimierungsservers verwendet wird, ist die Anpassung der Kernel-Parameter unterschiedlich. Nehmen Sie hier eine einfache Konfiguration vor TCP-Netzwerkparameter, damit Nginx mehr gleichzeitige Anforderungen unterstützen kann;

  • Konfigurationsmethode

  • Detaillierte Konfigurationsanalyse

    # 🎜🎜#
  • # gibt die maximale Anzahl von Handles an, die von einem einzelnen Prozess geöffnet werden können;
  • fs.file-max = 999999

    # Der Parameter ist auf 1 gesetzt, was bedeutet, dass sich der Socket im time_wait-Zustand befindet Darf für einen neuen TCP-Link wiederverwendet werden. Dies ist für den Server von großer Bedeutung, da sich immer eine große Anzahl von Links im time_wait-Zustand befindet.

    net.ipv4.tcp_tw_reuse = 1
  • # Der Standardwert für das Senden von Keepalive-Nachrichten durch TCP beträgt 2 Stunden. Wenn Sie ihn auf 10 Minuten einstellen, können Sie ungültige Links schneller bereinigen.
ner.ipv4.tcp_keepalive_time = 600

#Wenn der Server die Verbindung aktiv schließt, bleibt die maximale Zeit, die der Socket im Status „fin_wait_2“ verbleibt Wenn dieser Wert im Betriebssystem überschritten wird, wird der time_wait-Socket sofort gelöscht und eine Warnmeldung ausgegeben.
#Dieser Parameter ist standardmäßig auf 180000 eingestellt. Übermäßige time_wait-Sockets verlangsamen den Webserver.

net.ipv4.tcp_fin_timeout = 30

#Definieren Sie den Wertebereich des lokalen Ports für UDP- und TCP-Links.

net.ipv4.tcp_max_tw_buckets = 5000
# Definiert den Mindestwert, den Standardwert und den Höchstwert, damit TCP den Cache akzeptiert.

net.ipv4.ip_local_port_range = 1024 65000

#Definieren Sie den Mindestwert, den Standardwert und den Höchstwert des TCP-Sendecaches.

net.ipv4.tcp_rmem = 10240 87380 12582912

#Wenn die Netzwerkkarte Datenpakete schneller als die Kernel-Verarbeitungsgeschwindigkeit empfängt, entsteht eine Warteschlange zum Speichern dieser Datenpakete. Dieser Parameter stellt den Maximalwert der Warteschlange dar.

net.ipv4.tcp_wmem = 10240 87380 12582912

# zeigt an, dass der Kernel-Socket die Standardpuffergröße akzeptiert.

net.core.netdev_max_backlog = 8096

# gibt die Standardgröße des Kernel-Socket-Sendepuffers an.

net.core.rmem_default = 6291456

# zeigt an, dass der Kernel-Socket eine größere Puffergröße akzeptiert.

net.core.wmem_default = 6291456

# gibt die größere Größe des Kernel-Socket-Sendepuffers an.

net.core.rmem_max = 12582912

Hinweis: Die oben genannten vier Konfigurationen müssen umfassend auf der Grundlage der Geschäftslogik und der tatsächlichen Hardwarekosten berücksichtigt werden.

# hat nichts mit der Leistung zu tun. Wird verwendet, um TCP-Syn*** zu lösen.

net.core.wmem_max = 12582912

#Dieser Parameter gibt die maximale Länge der Syn-Anforderungswarteschlange an, die während der TCP-Drei-Wege-Handshake-Einrichtungsphase akzeptiert wird. Der Standardwert ist 1024. Wenn Sie ihn größer einstellen, kann Nginx ausgelastet sein und es bleibt keine Zeit dafür Akzeptieren Sie die neue Verbindung. Linux Die vom Client initiierte Verbindungsanforderung geht nicht verloren.

net.ipv4.tcp_syncookies = 1

#Dieser Parameter wird verwendet, um die Wartezeit für schnelles Recycling festzulegen und zu aktivieren.

net.ipv4.tcp_max_syn_backlog = 8192

Der Standardwert der Option ist 128. Dieser Parameter wird verwendet, um die Anzahl der gleichzeitig vom System initiierten TCP-Verbindungen anzupassen. Bei Anforderungen mit hoher Parallelität kann der Standardwert eine Verbindung verursachen Zeitüberschreitung oder Neuübertragung, daher muss eine Kombination erfolgen. Passen Sie diesen Wert basierend auf der Anzahl gleichzeitiger Anforderungen an. Die Option

net.ipv4.tcp_tw_recycle = 1

# wird verwendet, um die maximale Anzahl von TCP-Sockets im System festzulegen, die keinem Benutzerdatei-Handle zugeordnet sind. Bei Überschreitung dieser Anzahl wird der Orphan-Link sofort zurückgesetzt und eine Warnmeldung ausgegeben. Dieser Grenzwert weist darauf hin, dass Sie sich nicht zu sehr auf diesen Grenzwert verlassen oder diesen Wert reduzieren müssen, um einfache Dos*** zu verhindern. In häufigeren Fällen sollten Sie diesen Wert erhöhen.

net.core.somaxconn=262114

Zur Vereinfachung können Sie es direkt unter

net.ipv4.tcp_max_orphans=262114
kopieren

Das obige ist der detaillierte Inhalt vonSo optimieren Sie den Nginx-Kernel mit hoher Parallelität. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen