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

Loadtests ohne Server

Für Loadtests der eigenen Server bietet sich die Cloud an, denn kurz getaktet lassen sich dort viele Rechnerinstanzen starten, die das eigene Budget nur wenig belasten. Noch flexibler, günstiger und besser skalierbar sind Tests mit einer Serverless-Infrastruktur wie AWS Lambda. Wir führen vor, wie Sie dort mit Serverless Artillery eigene Loadtests starten. (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