Cómo aumentar las conexiones de socket máximas para Yosemite 10.10

2

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?

    
pregunta Caffeine Coma 11.03.2015 - 01:24

1 respuesta

1

Resulta que la biblioteca socketio de Go tiene una configuración máxima predeterminada de 1000 conexiones de socket simultáneas. Llamar a server.SetMaxConnection(10000) (junto con un ulimit -n apropiadamente alto, como se menciona en la pregunta) permitirá que > 1000 conexiones simultáneas de clientes.

    
respondido por el Caffeine Coma 11.03.2015 - 19:56

Lea otras preguntas en las etiquetas