Nginx 1.9.1 erlaubt Socket-Sharding

03.06.2015

Das neue Feature verbessert die Performance auf Multicore-Maschinen.

Nginx 1.9.1, die neueste Version des Release 1.9, implementiert ein Feature, das die Entwickler "Socket Sharding" nennen. Es basiert auf der SO_REUSEPORT-Option, die im Linux-Kernel 3.9 eingeführt wurde. Sie ermöglicht es, dass mehrere Prozesse von einer Socket-IP-Adressenkombination Gebrauch machen. Ohne die Option konnte nur ein Prozess einen bestimmten zu einer IP-Adresse gehörigen Port öffnen. 

Mit SO_REUSEPORT ist es möglich, mehrere Socket-Listener zu verwenden, die neue Verbindungen von Clients annehmen, bevor sie die Arbeit beispielsweise an einen Worker-Prozess abgeben. Bei der Beschränkung auf einen einzigen Listener-Prozess könnte dieser zu einem Performance-Engpass werden. Mit der neuen Option soll sich die Performance des Nginx-Webservers auf Multicore-Maschinen verbessern lassen. 

In einem synthetischen Benchmark auf einer Amazon-Cloud-Instanz mit 36 Core haben die Nginx-Entwickler zwischen zwei- und dreimal soviele Requests pro Sekunde gemessen wie bei einem normalen Nginx-Setup. Gleichzeitig verringerten sich die Latenz und die Standardabweichung der Latenzen. 

Neben neuen Linux-Versionen haben auch BSD-Betriebssysteme wie FreeBSD, DragonflyBSD, OS X die SO_REUSEPORT-Option für Sockets implementiert. Red Hat hat das Feature im Kernel 2.6.32 seines Enterprise Linux 6.5 zurückportiert. Auch der Monkey-Webserver macht seit Version 1.5.0 von SO_REUSEPORT Gebrauch. 

Ähnliche Artikel

comments powered by Disqus
Mehr zum Thema

Nginx Plus unterstützt HTTP/2

Das neueste Release der kommerziellen Nginx-Version implementiert das neue HTTP-Protokoll.

Artikel der Woche

Setup eines Kubernetes-Clusters mit Kops

Vor allem für Testinstallationen von Kubernetes gibt es einige Lösungen wie Kubeadm und Minikube. Für das Setup eines Kubernetes-Clusters in Cloud-Umgebungen hat sich Kops als Mittel der Wahl bewährt. Wir beschreiben seine Fähigkeiten und geben eine Anleitung für den praktischen Einsatz. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Container

Wie setzen Sie Container ein?

  • Gar nicht
  • Docker standalone
  • Docker mit Kubernetes
  • Docker mit Swarm
  • Docker mit anderem Management
  • LXC/LXD
  • Rocket
  • CRI-O auf Kubernetes
  • Container auf vSphere
  • Andere (siehe Kommentare auf der Ergebnisseite)

Google+

Ausgabe /2018

Microsite