Aipo - minimiza o consumo de memória

3

Temos cerca de 300 processos de edição executados sob o Ubuntu 10.4 de 64 bits, em modo inativo, cada processo leva ~ 19MB RES, ~ 174MB VIRT, portanto - são cerca de 6 GB de RAM inativos para todos os processos. Em estado ativo - processo leva até 100MB de RES e ~ 300MB VIRTTA

Todo processo usa minidom (arquivos xml são < 500kb, estrutura simples) e urllib.

As perguntas são - como podemos diminuir o consumo de RAM - pelo menos para trabalhadores ociosos, provavelmente algumas opções de aipo ou python podem ajudar? Como determinar qual parte ocupa a maior parte da memória?

    
por Andrew 03.12.2010 / 15:29

1 resposta

1

Veja a subclasse da classe AutoScaler e defina a variável min_concurrency em código%. A min_concurrency padrão de 0 está impedindo que o AutoScaler padrão seja reduzido.

Eu não testei esta classe (meus nós de teste do Celery estão desligados), mas algo como o seguinte deve funcionar:

from celery.worker.autoscale import Autoscaler
class MinIdleAutoscaler(Autoscaler):
    def __init__(self,pool, max_concurrency, min_concurrency=10, keepalive=30, logger=None):
        Autoscaler.__init__(self,pool,max_concurrency,min_concurrency,keepalive,logger)

Você pode então dizer ao Celery para usar essa classe definindo __init__ em seu aipo config.

    
por 28.06.2011 / 08:15