Estoy tratando de probar una aplicación de servicio de red que permite un gran número de conexiones de socket simultáneas.
He ajustado /etc/sysctl.conf
con lo siguiente:
kern.maxfiles=65536
kern.maxfilesperproc=65536
kern.ipc.somaxconn=10000
Con esto en su lugar, ulimit -n
muestra que tengo un máximo de 65536 "abrir archivo". Sin embargo, mi servicio todavía se atasca alrededor de la conexión número 1000.
Pensando que tal vez es algo específico de la plataforma (Nodo), volví a implementar una versión simplificada de esta en Golang, pero presenta el mismo problema.
También sucede si divido el lado del "cliente" en varios procesos que cada uno abre un puñado de conexiones. El servicio siempre se atasca alrededor de la conexión número 1000.
lsof -p <pid>
muestra 1011 conexiones IPv6 así:
gochat 25034 username 178u IPv6 0x11c1273e19ee5c8f 0t0 TCP localhost:http-alt->localhost:50080 (ESTABLISHED)
¿Qué impone este límite máximo de conexión de socket y cómo puedo expandirlo?