rsyslogd comendo mais de 20 GB (!) de RAM - que evidência coletar?

3

Eu tenho uma caixa do Ubuntu 14.04.3 rodando o kernel 3.13.0-74 com 32GB de RAM, que apresenta um processo rsyslogd enlouquecido:

$ ps -auxww | grep rsyslog
syslog   16212  0.7 64.0 27966168 21070336 ?   Ssl  Jan04 180:31 rsyslogd -c 5 -x

$ free -m
             total       used       free     shared    buffers     cached
Mem:         32142      31863        278        228          9        363
-/+ buffers/cache:      31490        651
Swap:        16383      11937       4446

Eu sei que a saída do ps 'não pode ser totalmente confiável, mas certamente é um pouco alta! Eu também tenho duas máquinas irmãs com o mesmo s / w (rodando desde o mesmo tempo) e em ambos os irmãos, o rsyslogd está se comportando melhor (ele ainda está usando cerca de 3.5GB em cada).

Este é o rsyslogd 7.4.4 e eu entendo que um vazamento de memória foi corrigido em uma versão mais recente .

Minha pergunta: antes de me apressar em atualizar, gostaria de reunir algumas evidências para mostrar que, de fato, acertei o vazamento, se possível. Eu deixei o rsyslogd rodando por agora, mas não demorará muito até que ele mude todo o swap, então precisa agir razoavelmente em breve ...

Uma coisa que coleciono evidências é atop . Isso mostra claramente quando o vazamento começou a ocorrer (e não me lembro de fazer nada de especial na caixa naquele momento). O que é interessante é que, ao mesmo tempo em que a memória começa a crescer, a atividade de gravação em disco cai - embora não pare completamente. O sistema de arquivos é bom em termos de capacidade.

$ atop -r atop_20160117 | grep rsyslogd
  PID  SYSCPU  USRCPU  VGROW  RGROW  RDDSK  WRDSK ST EXC S  CPU CMD            
16212   0.03s   0.06s     0K     0K     0K    96K --   - S   0% rsyslogd       
16212   0.11s   0.22s     0K     0K     0K  1844K --   - S   2% rsyslogd       
16212   0.03s   0.12s     0K     0K     0K   564K --   - S   1% rsyslogd       
16212   0.04s   0.06s     0K     0K     0K    96K --   - S   1% rsyslogd       
16212   0.08s   0.19s     0K     0K     0K  1808K --   - S   1% rsyslogd       
16212   0.04s   0.11s     0K     0K     0K   608K --   - S   1% rsyslogd       
16212   0.02s   0.07s     0K     0K     0K   116K --   - S   0% rsyslogd       
16212   0.06s   0.04s     0K  2640K     0K   144K --   - S   1% rsyslogd       
16212   0.02s   0.02s     0K  1056K     0K     0K --   - S   0% rsyslogd       
16212   0.01s   0.01s     0K   264K     0K     0K --   - S   0% rsyslogd       
16212   0.02s   0.04s     0K  2904K     0K     0K --   - S   0% rsyslogd       
16212   0.02s   0.02s     0K  1056K     0K     0K --   - S   0% rsyslogd       
16212   0.02s   0.00s     0K   264K     0K     0K --   - S   0% rsyslogd       
16212   0.06s   0.09s 75868K  3532K   208K     0K --   - S   1% rsyslogd       
16212   0.02s   0.02s     0K   792K     0K     0K --   - S   0% rsyslogd       
16212   0.01s   0.01s     0K   264K     0K     0K --   - S   0% rsyslogd       
16212   0.05s   0.03s     0K  3168K     0K     0K --   - S   0% rsyslogd       
16212   0.02s   0.02s     0K  1056K     0K     0K --   - S   0% rsyslogd       
16212   0.00s   0.01s     0K   264K     0K     0K --   - S   0% rsyslogd       
16212   0.03s   0.10s     0K  2904K     0K     0K --   - S   1% rsyslogd       
16212   0.02s   0.02s     0K   792K     0K     0K --   - S   0% rsyslogd       
16212   0.00s   0.02s     0K   264K     0K     0K --   - S   0% rsyslogd       
16212   0.04s   0.03s     0K  2904K     0K   160K --   - S   0% rsyslogd       
16212   0.02s   0.02s     0K   792K     0K     0K --   - S   0% rsyslogd       

edit: aqui está o gráfico de memória livre do Zabbix para essa caixa; o início do declínio por volta das 9:30 em 17-Jan coincide com a saída de atop acima.

edição final: tive que reiniciar o rsyslogd ; liberou uns 20 GB, confirmando - se havia alguma dúvida - que era o culpado:

free -m
             total       used       free     shared    buffers     cached
Mem:         32142      11325      20817        282         56        473
-/+ buffers/cache:      10795      21347
Swap:        16383       5638      10745

Ai, depois de correr apenas 12 horas, agora é mais de 4GB. Claramente, algo não está certo; Vou ter que tentar o caminho de atualização ...

    
por sxc731 21.01.2016 / 17:16

1 resposta

1

O arquivo /lib/systemd/system/rsyslog.services

[Service]
MemoryAccounting=yes
MemoryCurrent=8192000
MemoryLimit=8192000
    
por 21.05.2018 / 01:21