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

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019