Tenemos ~ 300 procesos apilados bajo Ubuntu 10.4 de 64 bits, en inactivo cada proceso requiere ~ 19mb RES, ~ 174mb VIRT, por lo tanto - hay alrededor de 6GB de RAM en reposo para todos los procesos. En estado activo: el proceso requiere hasta 100mb de RES y ~ 300mb VIRTApio - minimiza el consumo de memoria
Cada proceso utiliza minidom (los archivos xml son < 500kb, estructura simple) y urllib.
Las consultas son, ¿cómo podemos disminuir el consumo de RAM? Al menos para los trabajadores ociosos, probablemente algunas opciones de apio o pitón pueden ayudar. ¿Cómo determinar qué parte ocupa la mayor parte de la memoria?
UPD: agentes de búsqueda de vuelo, un trabajador por una agencia/fecha. Tenemos 10 agencias, una búsqueda de usuario == 9 fechas, por lo tanto, tenemos 10 * 9 agentes por cada búsqueda de usuario.
¿Es posible iniciar procesos on demand para evitar trabajadores en inactividad (algo así como MaxSpareServers en apache)?
UPD2: Agente ciclo de vida es - enviar solicitud HTTP, esperar la respuesta de ~ 10-20 seg, analizar XML (se tarda menos de 0.02s), guardar el resultado a MySQL
¿has probado serverfault.com o #celery en irc.freenode.net? – Unreason
serverfault está vacío, por desgracia – Andrew
¿Por qué tantos servidores 'aplery' inactivos? –