Heim >Betrieb und Instandhaltung >Nginx >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 Anweisungenserver_names_hash_max_sizeund
server_names_hash_bucket_sizegesteuert. 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
useangegeben 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_moduleund
--without-select_moduleaktivieren 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_moduleund
--without-poll_moduleaktivieren 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-maxzu 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!