aumento de filedescriptors y seteo de FD_SETSIZE

Alvaro Herrera alvherre en alvh.no-ip.org
Mar Nov 21 20:02:21 CLST 2006


Miguel Oyarzo O. escribió:

> Estimados
> 
> tengo un servidor que atiende muchas solicitudes en forma simultanea 
> (dante).
> Cuando llega a 510 sockes abiertos ya no puede continuar mas y me arroja 
> este error:
> 
> sockd[31940]: can't accept new clients, no free negotiate slots: Too many 
> open files (errno = 24)
> 
> Aun no descubro si se trata de un limite de dante o del kernel del FC3.
> 
> Como puedo aumentar el numero de filedescriptors?

Hay archivos en /proc que puedes tocar para eso.

> Lei por alli que si aumento el numero de archivos abiertos tambien
> debo aumentar FD_SETSIZE, pero no encuentro info sobre eso.

Puedes aumentar FD_SETSIZE poniendo un #define en el codigo del
programa.  Una idea seria incluir <bits/typesizes.h> en el codigo, y
justo despues de eso hacer un #undef FD_SETSIZE y a continuacion #define
FD_SETSIZE a un numero mas grande (el doble?)

Sin embargo yo creo que esa aproximacion al problema es mala.  Seria
mejor que buscaras otra manera de mejorar la escalabilidad del sistema.
Quizas poniendo mas de una instancia de Dante?

-- 
Alvaro Herrera                 http://www.amazon.com/gp/registry/CTMLCN8V17R4
"I can see support will not be a problem.  10 out of 10."    (Simon Wittber)
      (http://archives.postgresql.org/pgsql-general/2004-12/msg00159.php)


Más información sobre la lista de distribución Linux