Heim > Artikel > Betrieb und Instandhaltung > Gibt es große Leistungsunterschiede zwischen Apache und Nginx?
Dies liegt daran, dass Nginx das neueste Epoll- (Linux 2.6-Kernel) und Kqueue- (Freebsd) Netzwerk-E/A-Modell verwendet, während Apache das traditionelle verwendet ausgewähltes Modell verwendet wird. (Empfohlenes Lernen: nginx-Tutorial)
Derzeit verwenden Squid und Memcached unter Linux, die einem hohen gleichzeitigen Zugriff standhalten können, das Epoll-Netzwerk-E/A-Modell.
Um das Lesen und Schreiben einer großen Anzahl von Verbindungen zu bewältigen, ist das von Apache übernommene ausgewählte Netzwerk-E/A-Modell sehr ineffizient.
Im Folgenden wird eine Metapher verwendet, um den Unterschied zwischen dem von Apache verwendeten Select-Modell und dem von Nginx verwendeten Epoll-Modell zu analysieren:
Angenommen, Sie studieren in Hochschule, das Wohnheimgebäude, in dem du wohnst, hat viele Räume und deine Freunde kommen, um dich zu finden.
In der gewählten Variante führt die Gastgeberin Ihre Freunde von Zimmer zu Zimmer, bis sie Sie finden.
Die Epoll-Version der Wohnheimtante notiert zunächst die Zimmernummer jedes Schülers. Wenn Ihr Freund kommt, müssen Sie ihm nur sagen, in welchem Zimmer Sie wohnen, ohne Ihren Freund mitbringen zu müssen Persönlich das Gebäude nach Menschen durchsuchen.
Wenn 10.000 Menschen kommen und ihre Klassenkameraden finden wollen, die in diesem Gebäude wohnen, ist es selbstverständlich, wer in der ausgewählten Version oder der Epoll-Version der Wohnheimtante effizienter ist.
In ähnlicher Weise ist das Abfragen von E/A einer der zeitaufwändigsten Vorgänge. Es ist auch sehr klar, welche Leistung zwischen Select und Epoll höher ist.
Das obige ist der detaillierte Inhalt vonGibt es große Leistungsunterschiede zwischen Apache und Nginx?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!