SO_REUSEPORT
Socket-Option, mit der mehrere Prozesse exakt denselben Port binden können — der Kernel verteilt die eingehenden Verbindungen dann selbst zwischen ihnen.
Traditionell wurde Mehrkernbetrieb auf Serverseite entweder so gelöst, dass ein Prozess annimmt und den Socket an Worker weiterreicht, oder dass alle denselben lauschenden Socket erben und um den Aufruf von accept() konkurrieren. Beides kostet etwas: Im ersten Fall wird die Schleife des Elternprozesses zum Flaschenhals, im zweiten gibt es entweder eine Thundering Herd oder ein Lock, das pro Verbindung genommen werden muss. Die Option kam 2013 mit Linux 3.9 und verlagert die Verteilung in den Kernel, der das Vierertupel der Verbindung hasht und einer der Warteschlangen zuweist. Nginx stellt das als reuseport zur Verfügung. Die Falle: Beendet sich ein Prozess, nimmt er die Verbindungen mit, die bereits in seiner Accept-Warteschlange lagen.