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.
Das neueste Release der kommerziellen Nginx-Version implementiert das neue HTTP-Protokoll.