Heim > Artikel > Betrieb und Instandhaltung > So optimieren Sie den Nginx-Kernel mit hoher Parallelität
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;
Detaillierte Konfigurationsanalyse
# 🎜🎜#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
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 = 12582912Hinweis: 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 = 8192Der 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=262114Zur Vereinfachung können Sie es direkt unter
net.ipv4.tcp_max_orphans=262114kopieren
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!