Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So optimieren Sie Nginx

So optimieren Sie Nginx

(*-*)浩
(*-*)浩Original
2019-12-17 14:44:123706Durchsuche

So optimieren Sie Nginx

Ngnix verwendet eine Hash-Tabelle, um die schnelle Bearbeitung von Anfragen zu unterstützen.

Angesichts der Tatsache, dass die Größe der Hash-Tabellenspeichereinheit, die Schlüssel und ihre Werte speichert, den eingestellten Parameter (Hash-Bucket-Größe) nicht überschreitet, wird Nginx beim Start und bei jeder Neukonfiguration gehasht . Wählen Sie die kleinstmögliche Tischgröße. (Empfohlenes Lernen: Nginx verwenden )

Bis die Größe der Hash-Tabelle den Parameter (Hash Max SiZe) überschreitet, wird die Größe erneut ausgewählt. Parameter. Beispielsweise wird die Hash-Tabelle, die Servernamen enthält, durch die Anweisungen

server_names_hash_max_size

und

server_names_hash_bucket_size

gesteuert. Die Parameter-Hash-Bucket-Größe entspricht immer der Größe der Hash-Tabelle und ist ein Vielfaches der Prozessor-Cache-Größe. Nachdem die Anzahl der Zugriffe auf den Speicher reduziert wurde, ist es möglich, die Suche nach Schlüsselwerten der Hash-Tabelle im Prozessor zu beschleunigen.

Wenn die Hash-Bucket-Größe gleich der Größe des Prozessor-Cache ist, beträgt die Anzahl der Suchvorgänge im Speicher bei der Suche nach einem Schlüssel im schlimmsten Fall 2. Das erste Mal besteht darin, die Adresse der Speichereinheit zu ermitteln, und das zweite Mal besteht darin, den Schlüsselwert in der Speichereinheit zu finden.

Wenn Nginx daher eine Aufforderung ausgibt, dass die maximale Hash-Größe oder die Hash-Bucket-Größe erhöht werden muss, besteht das erste darin, die Größe des vorherigen Parameters zu erhöhen.

Ereignis Modell

Nginx unterstützt die folgenden Verbindungsverarbeitungsmethoden (E/A-Multiplexing-Methode) , diese Methoden können über die Direktive

use

angegeben werden.

Auswählen – die Standardmethode. Dies ist die Standardeinstellung zur Kompilierungszeit, wenn es für die aktuelle Plattform keine effizientere Methode gibt. Sie können dieses Modul mit den Konfigurationsparametern

--with-select_module

und

--without-select_module

aktivieren oder deaktivieren.

Umfrage – die Standardmethode. Dies ist die Standardeinstellung zur Kompilierungszeit, wenn es für die aktuelle Plattform keine effizientere Methode gibt. Sie können dieses Modul mit den Konfigurationsparametern

--with-poll_module

und

--without-poll_module

aktivieren oder deaktivieren.

kqueue – Effiziente Methode, die in FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 und MacOS

epoll – eine effiziente Methode, die in Linux-Kernel-Versionen 2.6 und späteren Systemen verwendet wird. In einigen Distributionen, wie zum Beispiel SuSE 8.2, gibt es Patches zur Unterstützung von Epoll im 2.4-Kernel.

rtsig – ausführbares Echtzeitsignal, verwendet in Systemen mit Linux-Kernel-Version 2.2.19 oder höher. Standardmäßig können im gesamten System nicht mehr als 1024 POSIX-Echtzeitsignale (in der Warteschlange) angezeigt werden. Diese Situation ist für stark ausgelastete Server ineffizient; daher ist es notwendig, die Warteschlangengröße durch Anpassen des Kernel-Parameters

/proc/sys/kernel/rtsig-max

zu erhöhen. Ab der Linux-Kernel-Version 2.6.6-mm2 wird dieser Parameter jedoch nicht mehr verwendet und es gibt für jeden Prozess eine unabhängige Signalwarteschlange. Die Größe dieser Warteschlange kann mit dem Parameter RLIMIT_SIGPENDING angepasst werden. Wenn diese Warteschlange zu überfüllt ist, verlässt Nginx sie und beginnt mit der Methode

poll

, um Verbindungen zu verarbeiten, bis wieder Normalität einkehrt.

/dev/poll – effiziente Methode für Solaris 7 11/99+, HP/UX 11.22+ (Eventport), IRIX 6.5.15+ und Tru64 UNIX 5.1A+.

Eventport – Effizient Methode für Solaris 10. Um Kernel-Abstürze zu verhindern, ist die Installation dieses Sicherheitspatches erforderlich.

Das obige ist der detaillierte Inhalt vonSo optimieren Sie Nginx. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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