Por que meus processos uWSGI estão morrendo imediatamente?

2

Estou usando o Supervisor e o modo Emperor do uWSGI. Quando eu defino limit-as para 512 (MB), os trabalhadores morrem instantaneamente (respawn, die, respawn, die, a cada 3/4 de segundo ou mais):

[uwsgi]
workers = 4
threads = 40
limit-as = 512
harakiri = 20
max-requests = 1600
... non-performance/memory/processor-related settings ommitted

Mas, se eu alterar limit-as para:

[uwsgi]
workers = 4
threads = 40
limit-as = 1024
harakiri = 20
max-requests = 1600
... non-performance/memory/processor-related settings ommitted

e reinicie o uwsgi, o problema desaparece imediatamente . Para colocar uma farsa nisso, modifiquei a configuração de volta para 512, reiniciei novamente e o problema voltou imediatamente .

Notas: Meu aplicativo é um aplicativo simples do Django sem muita configuração adicional do Python durante o tempo de inicialização.

    
por orokusaki 10.12.2012 / 03:03

1 resposta

3

parece que o espaço de endereço de 512M não é suficiente para o seu aplicativo. Se você tiver que respeitar tal limite, diminua o número de encadeamentos ou reduza seu tamanho de pilha com thread-stack-size = 512 (512k é geralmente a quantidade mínima para um aplicativo python)

    
por 10.12.2012 / 07:28