Spike na utilização de swap sem alta taxa de swap

4

Todos os sábados, por razões desconhecidas para mim, um dos meus servidores experimenta um aumento na utilização de swap. Não é necessariamente um problema, pois há bastante memória livre disponível, mas eu ainda gostaria de entender o que está acontecendo.

Em particular, estou perplexo com uma situação em que a troca vai de 2% usada para 100% usada durante um período de cerca de 20 minutos. Quando isso acontece, não parece haver aumento na taxa de swap. O servidor tem uma partição swap de 8 GB, então eu esperaria uma taxa de saída de página de milhares de páginas por segundo para preencher o espaço disponível.

Além disso, parece não haver nenhum aumento na utilização de memória no momento que faz com que o servidor troque.

Alguém pode dar uma explicação para o comportamento observado? O servidor é o RHEL 4.8 (antigo, eu sei) com um kernel 2.6.9. Eu incluí algumas saídas do sar abaixo.

A utilização de swap aumenta de 2% para 100% em cerca de 20 minutos:

$ sar -r -f sa12
....
06:00:01 PM kbmemfree kbmemused  %memused kbbuffers  kbcached kbswpfree kbswpused  %swpused  kbswpcad
06:10:01 PM   4583856  11847032     72.10     79676    319804   8178056    207864      2.48     19816
06:20:01 PM   4720904  11709984     71.27     38840    225108   8178400    207520      2.47     19124
06:30:02 PM   4839160  11591728     70.55      1404    144948   1968152   6417768     76.53   6227068
06:40:02 PM   4827016  11603872     70.62      1640    145484     10232   8375688     99.88   8182968
06:50:02 PM   4836376  11594512     70.57       844    123304        60   8385860    100.00   8193044
07:00:01 PM   4825764  11605124     70.63       920    128108      4516   8381404     99.95   8188680
....

Aqui estão as estatísticas de troca para o mesmo período.

$ sar -W -f sa12
....
06:00:01 PM  pswpin/s pswpout/s
06:10:01 PM      0.00      0.00
06:20:01 PM      0.00      0.00
06:30:02 PM      0.68      0.00
06:40:02 PM      1.85      0.00
06:50:02 PM      5.07      0.00
07:00:01 PM      8.62      0.00
....
    
por Vortura 14.10.2013 / 11:59

2 respostas

1

Fato interessante: o uso de swap aumentou de 0 para 8GB ... enquanto isso, nenhum byte foi gravado no disco (sar's pswpout/s show 0). Então, minha suposição é que a troca foi alocada / reservada, mas não consumida / usada.

Meu melhor palpite é que seu servidor usa vm.overcommit_memory=2 (leia documentação do vm.overcommit_memory , vm overcommit-accounting ). Nesse caso, cada byte atribuído é contado como usado. [Eu não verifiquei].

Você também pode querer ler o tópico Linux: total de swap usado = swap usado por processos + ?? .

    
por 08.03.2015 / 02:49
0

Isso não responde diretamente à sua pergunta, mas o script a seguir pode ser útil em sua investigação. Ele permite que você saiba quanto espaço de troca cada processo individual está usando:

Descubra quais processos estão usando swap

Se você tem uma idéia aproximada de quando a troca começa, você pode configurar o cron para executar este script por volta dessa hora.

    
por 12.11.2013 / 16:17