mod_wsgi, apache2 e média de carregamento

1

Eu tenho um servidor executando vários aplicativos cherrypy no apache2 em mod_wsgi. Estamos vendo uma média de carga constantemente flutuante em uma caixa que não está atendendo a muitas solicitações. Tanto quanto eu posso dizer, a caixa está sem carga real da CPU, tem muita memória, há muito pouco tráfego de rede e não há E / S de disco. Estamos executando 13 processos de daemon mod_wsgi com 5 threads por processo, atendendo 5 aplicativos diferentes. Esses são aplicativos de serviços de back-end muito leves que não fazem muito processamento. Eu verifiquei quase tudo que eu posso pensar como uma causa da carga de oscilação e queria saber se alguém aqui teve experiência com um problema semelhante. Qualquer comentário muito apreciado.

Aqui está um traço de médias de carga ao longo de cerca de 5 minutos em uma caixa de espera que atende 10s de solicitações por minuto:

~ $ sar -q 5
Linux 2.6.32-305-ec2    01/27/2011  _i686_  (1 CPU)

04:18:37 AM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
04:18:42 AM         0       257      1.52      1.90      1.89
04:18:47 AM         0       257      1.40      1.87      1.88
04:18:52 AM         0       257      1.28      1.84      1.87
04:18:57 AM         0       257      1.18      1.81      1.86
04:19:02 AM         0       257      1.17      1.79      1.85
04:19:07 AM         0       257      1.15      1.78      1.85
04:19:12 AM         0       257      1.14      1.77      1.84
04:19:17 AM         0       257      1.05      1.74      1.83
04:19:22 AM         0       257      0.96      1.71      1.82
04:19:27 AM         0       257      0.89      1.68      1.81
04:19:32 AM         0       256      0.82      1.65      1.80
04:19:37 AM         0       256      0.75      1.62      1.79
04:19:42 AM         0       256      0.69      1.60      1.78
04:19:47 AM         0       256      0.95      1.64      1.79
04:19:52 AM         0       256      1.20      1.67      1.81
04:19:57 AM         0       256      1.42      1.71      1.82
04:20:02 AM         0       256      1.31      1.68      1.81
04:20:07 AM         0       256      2.00      1.82      1.85
04:20:12 AM         0       256      2.64      1.96      1.89
04:20:17 AM         0       256      3.23      2.09      1.94
04:20:22 AM         0       256      2.97      2.06      1.93
04:20:27 AM         0       256      2.74      2.02      1.92
04:20:32 AM         0       256      2.52      1.99      1.91
04:20:37 AM         0       256      2.31      1.95      1.90
04:20:42 AM         0       256      2.13      1.92      1.89
04:20:47 AM         0       256      1.96      1.89      1.88
04:20:52 AM         0       256      1.80      1.86      1.87
04:20:57 AM         0       256      1.66      1.83      1.85
04:21:02 AM         0       256      1.52      1.80      1.84
04:21:07 AM         0       256      1.40      1.77      1.83
04:21:12 AM         0       256      1.29      1.74      1.82
04:21:17 AM         0       256      1.19      1.71      1.81
04:21:22 AM         0       256      1.09      1.68      1.80
04:21:27 AM         0       256      1.00      1.65      1.79
04:21:32 AM         0       256      0.92      1.62      1.78
04:21:37 AM         0       256      0.85      1.59      1.77
04:21:42 AM         0       256      0.78      1.57      1.77
04:21:47 AM         0       256      0.72      1.54      1.76
04:21:52 AM         0       256      0.98      1.58      1.77
04:21:57 AM         0       256      1.22      1.62      1.78
04:22:02 AM         0       256      1.44      1.66      1.79
04:22:07 AM         0       256      2.13      1.80      1.83
04:22:12 AM         0       256      2.76      1.93      1.88
04:22:17 AM         0       256      3.34      2.07      1.92
04:22:22 AM         0       256      3.87      2.20      1.96
04:22:27 AM         0       256      3.56      2.16      1.95
04:22:32 AM         0       256      3.28      2.13      1.94
04:22:37 AM         0       256      3.01      2.09      1.93
04:22:42 AM         0       256      2.77      2.06      1.92
04:22:47 AM         0       256      2.55      2.02      1.91
04:22:52 AM         0       256      2.34      1.99      1.90
04:22:57 AM         0       256      2.16      1.95      1.89
04:23:02 AM         0       256      1.98      1.92      1.88
04:23:07 AM         0       256      1.82      1.89      1.87
04:23:12 AM         0       256      1.68      1.86      1.86

e um perfil principal:

top - 04:38:57 up  1:17,  1 user,  load average: 2.55, 3.03, 2.46
Tasks:  78 total,   1 running,  77 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1741016k total,   946844k used,   794172k free,    63712k buffers
Swap:   917496k total,        0k used,   917496k free,   646064k cached

por solicitação, conf apache de um serviço (todos eles são bem parecidos com isso).

Listen 12800
<VirtualHost *:12800>
    WSGIScriptAlias / /var/www/services/tracking/tracking.wsgi
    WSGIDaemonProcess tracking user=www-data group=www-data processes=3 threads=5 maximum-requests=1000 umask=0007
    WSGIProcessGroup tracking
    WSGIApplicationGroup tracking
    WSGIPassAuthorization On

    ErrorLog /var/log/apache2/tracking.error.log
    CustomLog /var/log/apache2/tracking.access.log combined
    LogLevel warn
</VirtualHost> 

Não fizemos nenhum ajuste de parâmetro específico para mod_wsgi além do que você vê neste conf.

    
por Brad Baebler 27.01.2011 / 05:53

1 resposta

1

Tem certeza absoluta de que eles estão sendo executados no modo daemon e não no modo incorporado por engano? O modo Embedded pode resultar em um comportamento indesejável para aplicações web Python, dependendo das configurações MPM usadas e MPM. Veja:

link

Você também pode causar problemas para si mesmo se estiver usando o modo daemon e tiver definido pedidos máximos para um valor ridiculamente baixo. O tempo limite de inatividade também pode causar problemas se o tráfego for pouco frequente e estiver usando muitos processos.

Sugiro que você publique as partes da configuração do Apache relacionadas ao mod_wsgi.

    
por 27.01.2011 / 08:16