[pyar] Lidiando con el límite de file descriptors abiertos y subprocess

Emiliano Dalla Verde Marcozzi edvm en airtrack.com.ar
Mar Ago 23 19:20:23 ART 2011


El 23 de agosto de 2011 17:28, QliX=D! [aka EHB] <qlixed en gmail.com>escribió:

> 2011/8/23 Roberto Alsina <ralsina en netmanagers.com.ar>:
> > On 8/23/2011 11:07 AM, Andrés Gattinoni wrote:
> >>
> >> 2011/8/23 QliX=D! [aka EHB]<qlixed en gmail.com>:
> >>>
> >>> 2011/8/23 Andrés Gattinoni<andresgattinoni en gmail.com>
> >>> Yo tocaria el popen asi:
> >>> p = subprocess.Popen(cmd, stdout=subprocess.PIPE,
> >>> stderr=subprocess.STDOUT, close_fds=True)
> >>>
> >>> Si estas en windows no uses close_fds.
> >>> Con eso Juntas stdout y stderr con lo que reducis a la mitad los pipe
> >>> usados.
> >
> > Si estas en windows, usá close_fds a menos que no pienses escribir nunca
> a
> > stdout/stderr, porque pasan cosas muy raras :-)
> >
> > http://bugs.python.org/issue7213
>
> bue, tenia entendido al reves, que si usabas close_fds no te
> actualizaba los PIPEs.
> mea culpa.
>
> nota mental updateada.
>
> EHB
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>

Tiro otra mas, que es levantar el limite de file descriptors:
con ulimit -a podemos ver los limites y para levantarlos por proceso,
en slackware esta por ... /sbin/initscript que configura al proceso init
cual es el padre de los procesos que launchea, entonces por ej en
/sbin/initscript puedo tener:

bash-4.1# cat /sbin/initscript
#
# initscript    If this script is intalled as /sbin/initscript,
#        it is executed by init(8) for every program it
#        wants to spawn like this:
#
#        /bin/sh /sbin/initscript <id> <level> <action> <process>
#
#        It can be used to set the default umask and ulimit
#        of all processes. By default this script is installed
#        as /sbin/initscript.sample, so to enable it you must
#        rename this script first to /sbin/initscript.
#
# Version:    @(#)initscript 1.10 10-Dec-1995 MvS.
#
# Author:    Miquel van Smoorenburg, <miquels en cistron.nl>
#

  # Set umask to safe level, and enable core dumps.
  umask 022
  ulimit -c 2097151
  ulimit -n 10000

y voy a tener un limite de 10000 file descriptors por proceso. En otras
distros no tengo idea (ej de tipo debian) como se configurara esto.


-- 
*Emiliano Dalla Verde Marcozzi*
Encargado de IT y Python Ninja Developer



San Juan 4879
Rosario. Argentina
Tel. (+54) 341 437 6878
www.airtrack.com.ar

“Si quieres calentar una roca siéntate encima de ella 100 años”.

- proyectos: https://bitbucket.org/edvm
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20110823/be5d3307/attachment.html>


More information about the pyar mailing list