2009-10-28 10 views
9

Tengo una duda con respecto al valor de retraso acumulado en la llamada al sistema de escucha. Desde la página del hombre de la llamada al sistema de escucha.valor de retraso acumulado en la llamada al sistema de escucha

Si el argumento de acumulación es mayor que el valor en/proc/sys/net/core/somaxconn, entonces se truncará silenciosamente a ese valor; el valor predeterminado en este archivo es 128.

Significa que mi servidor puede aceptar solamente < 128 conexiones a la vez. ¿Qué pasa si quiero aceptar más conexión> 128 ?? ¿Puedo simplemente establecer el valor en el número máximo posible para que pueda acceder a más número de conexión?

Respuesta

8

Ese número es solo el tamaño de la cola de conexión , donde las nuevas conexiones esperan a que alguien las acepte. Tan pronto como su aplicación llame al accept(), se elimina una conexión en espera de esa cola. Por lo tanto, definitivamente puede manejar más de 128 conexiones simultáneas porque generalmente solo pasan un tiempo corto en la cola.

+0

@Greg - Entonces, el valor de registro solo indica el tamaño de la cola de conexión, pero no el número de conexiones que se aceptarán. Una vez que se realiza la aceptación, se elimina de la cola y proporciona espacio para otras conexiones. – codingfreak

+0

Sí, eso es correcto. –

4

Sí. Use un comando como

$ echo 1000 >/proc/sys/net/core/somaxconn 

Para establecer el límite más alto. Consulte, por ejemplo, this page para obtener más sugerencias de ajuste.

+0

Parece bastante simple y directo. Pero aumentar el valor acumulado en un mayor número aumenta la memoria asignada para la cola de escucha en Kernel. ¿Hay algo llamado valor razonable que no aumente la sobrecarga y proporcione un mejor rendimiento? – codingfreak

+4

Uh ... Almacenar cosas generalmente necesita memoria. Si necesita un retraso acumulado más grande, pero no está dispuesto a gastar memoria para almacenarlo ... no estoy seguro de lo que puede hacer, me temo. – unwind

1

El valor de acumulación no es el número de conexiones máximas, es el número de conexiones pendientes, es decir, las conexiones que no ha aceptado(): ed.

Cuestiones relacionadas