traspasar FD entre procesos
Alvaro Herrera
alvherre en alvh.no-ip.org
Lun Ago 20 18:01:34 CLT 2007
rodrigo ahumada escribió:
>
> --- Alvaro Herrera <alvherre en alvh.no-ip.org> escribió:
>
> > rodrigo ahumada escribió:
> > > hola
> > >
> > > tengo la siguiente consulta:
> > >
> > > es posible que un proceso traspase un FD a otro
> > > proceso?
> > >
> > > es decir, por ejemplo creo un proceso que lance un
> > > socket servidor, y que continuamente este
> > ejecutando
> > > accept, con eso obtiene un socket cliente, y se lo
> > > "inyecta" a otro proceso para que trabaje con
> > el...
> > >
> > > ya se que puede usarse fork, pero la idea es que
> > el
> > > proceso acepte nuevos FD despues de haber sido
> > creado.
> >
> > No. Quizas podrias usar threads para eso pero yo no
> > te lo recomendaria.
> >
> > Es muy caro el fork? Nota: eso que describes es lo
> > que Postgres hace.
>
> bueno, en linux esta harto optimizado, pero la mejor
> forma de atender a 20000 sockets es lanzar N procesos
> o hebras (N = numero de cpus), y que estos se encargen
> de 20000/N sockets cada uno mediante poll (o epoll)
> no?
No necesariamente; depende de que tipo de procesamiento haya en la
atencion a cada uno. Si es sencillo, claro, eso puede ser lo mejor. De
lo contrario atender a uno puede dejar esperando al resto durante mucho
tiempo.
--
Alvaro Herrera http://www.flickr.com/photos/alvherre/
"El destino baraja y nosotros jugamos" (A. Schopenhauer)
Más información sobre la lista de distribución Linux