Aumento no uso de memória para usuários / mestres do uWSGI após a mudança do Debian para o Ubuntu

3

Depois de mover nossos servidores web do Debian para o Ubuntu, notamos um grande aumento na quantidade de memória (RSS) usada pelos processos mestre e de trabalho do uWSGI. A versão do uWSGI (1.9.13) permanece a mesma.

Eu usei pmap para examinar o uso de memória para cada processo. Sob o Debian, um processo mestre era assim:

Address             RSS     Dirty   Mode    Mapping 
----------------    ------  ------  ------          
kB                  15976   11316           
0000000001a880000   7308    7308    rw---   [anon
400000              1608    0       r-x--   uwsgi   
00007ff16c5a70000   772     772     rw---   [anon
00007ff176c3a0000   668     0       r-x--   libcrypto.so.0.9.8  
00007ff175f010000   548     0       r-x--   libc-2.11.3.so  
00007ff177fc70000   512     512     rw---   [anon
00007ff17807b0000   512     512     rw---   [anon
00007ff1759e50000   356     0       r-x--   libstdc++.so.6.0.13 
80                  268     184     rw---   uwsgi   

Eu só estou mostrando os blocos de memória mais relevantes e os números em RSS estão em kilobytes.

Agora, no Ubuntu, o uWSGI alocou-se muito mais memória.

Address             RSS     Dirty   Mode    Mapping     
----------------    ------  ------  ------              
kB                  24216   19196               
2401000             15508   15508   rw---   [   anon    ]
00007f3094e86000    1648    0       r-x--   libpython2.7.so.1.0     
00007f308c6ce000    772     772     rw---   [   anon    ]
00007f3094abe000    680     0       r-x--   libc-2.17.so        
00007f309595d000    612     0       r-x--   libcrypto.so.1.0.0      
00007f3096de4000    512     512     rw---   [   anon    ]
00007f3096e67000    512     512     rw---   [   anon    ]
400000              480     0       r-x--   uwsgi       
00007f30945b3000    352     0       r-x--   libstdc++.so.6.0.17     
00007f309532e000    340     248     rw---   libpython2.7.so.1.0     

A configuração e o tipo de aplicativo carregado nesses processos principais são idênticos. As versões do kernel são 2.6.32-5-xen-amd64 para o Debian e 3.8.0-19-genéricas para o Ubuntu.

Alguém tem alguma idéia de por que cada mestre estaria alocando a si mesmo outros 8megs de memória?

    
por aychedee 12.07.2013 / 18:59

1 resposta

1

Descoberto o problema, a versão do sistema do Python 2.7 fornecida pelo Ubuntu faz com que os processos do uWSGI usem mais memória. Compilar uma nova versão do Python e usar isso para lançar o imperador do uWSGI resolveu o problema.

Compilando o Python e instalando o uWSGI pode ser obtido com os comandos abaixo no Ubuntu 13.04.

wget http://python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2
tar jxf Python-2.7.5.tar.bz2
cd Python-2.7.5/
./configure --prefix=/opt/python2.7.5 && make && make install
cd /opt/python2.7.5/
curl -O http://python-distribute.org/distribute_setup.py
bin/python2.7 distribute_setup.py
bin/easy_install-2.7 pip
bin/pip-2.7 install uwsgi
    
por 16.07.2013 / 19:45