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

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

WBOY
Freigeben: 2023-05-15 17:52:06
nach vorne
1065 Leute haben es durchsucht

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
    Nach dem Login kopieren

    # 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
    Nach dem Login kopieren
  • # 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
Nach dem Login kopieren

#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
Nach dem Login kopieren

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

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

net.ipv4.ip_local_port_range = 1024 65000
Nach dem Login kopieren

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

net.ipv4.tcp_rmem = 10240 87380 12582912
Nach dem Login kopieren

#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
Nach dem Login kopieren

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

net.core.netdev_max_backlog = 8096
Nach dem Login kopieren

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

net.core.rmem_default = 6291456
Nach dem Login kopieren

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

net.core.wmem_default = 6291456
Nach dem Login kopieren

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

net.core.rmem_max = 12582912
Nach dem Login kopieren

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
Nach dem Login kopieren

#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
Nach dem Login kopieren

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

net.ipv4.tcp_max_syn_backlog = 8192
Nach dem Login kopieren

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
Nach dem Login kopieren

# 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
Nach dem Login kopieren

Zur Vereinfachung können Sie es direkt unter

net.ipv4.tcp_max_orphans=262114
Nach dem Login kopieren
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!

Verwandte Etiketten:
Quelle:yisu.com
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 Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage