Come aumentare il numero massimo di connessioni socket per Yosemite 10.10

2

Sto provando a testare un'app di servizio di rete che consente un numero elevato di connessioni socket simultanee.

Ho modificato /etc/sysctl.conf con quanto segue:

kern.maxfiles=65536
kern.maxfilesperproc=65536
kern.ipc.somaxconn=10000

Con questo al posto, ulimit -n mostra che ho un 65536 "file aperto" massimo. Eppure il mio servizio rimane bloccato attorno alla millesima connessione.

Pensando che forse è qualcosa di specifico per la piattaforma (Nodo), ho re-implementato una versione semplificata di esso in Golang, ma presenta lo stesso problema.

Succede anche se divido il lato "client" in diversi procs che aprono ciascuna una manciata di connessioni. Il servizio si blocca sempre attorno alla millesima connessione.

lsof -p <pid> mostra 1011 connessioni IPv6 in questo modo:

gochat  25034 username  178u    IPv6 0x11c1273e19ee5c8f       0t0       TCP localhost:http-alt->localhost:50080 (ESTABLISHED)

Che cosa sta imponendo questo limite massimo di connessioni socket e come posso espanderlo?

    
posta Caffeine Coma 11.03.2015 - 01:24
fonte

1 risposta

1

Quindi risulta che la libreria socketio di Go ha un'impostazione massima predefinita di 1000 connessioni socket simultanee. Chiamando server.SetMaxConnection(10000) (insieme a un ulimit -n opportunamente alto, come menzionato nella domanda) consenti a > 1000 connessioni client simultanee.

    
risposta data 11.03.2015 - 19:56
fonte

Leggi altre domande sui tag