Lessico IT › Reti › SO_REUSEPORT

SO_REUSEPORT

Reti Svenska → Aggiornato: 2026-10-02

Opzione di socket che permette a più processi di fare il bind sulla stessa identica porta, dopodiché è il kernel a distribuire le connessioni in arrivo tra di essi.

Tradizionalmente, sfruttare più core sul server significava che un solo processo accettava le connessioni e passava il socket ai worker, oppure che tutti ereditavano lo stesso socket in ascolto e si contendevano la chiamata a accept(). Entrambe le soluzioni costano: la prima fa del ciclo del padre un collo di bottiglia, la seconda produce un thundering herd o un lock da acquisire a ogni connessione. L'opzione è arrivata in Linux 3.9 nel 2013 e sposta la distribuzione nel kernel, che calcola un hash della quadrupla della connessione e la assegna a una delle code. Nginx la espone come reuseport. L'insidia è che un processo in chiusura si porta via le connessioni che già si trovavano nella sua coda di accept.

← Torna al lessico