Caixa Linux com swap 100% usado e 60% de RAM disponível - é normal?

Caixa Linux com swap 100% usado e 60% de RAM disponível - é normal?

Recentemente vi uma caixa (na verdade, VM de servidor web) que possui exatos 0 (zero) bytes não utilizados em seu swap, enquanto a memória RAM disponível (que não é gratuita, mas a soma de free+buffers+cache) está em 60% do total RAM da VM. Nunca vi isso antes, então me perguntei se essa configuração é boa (para a caixa e aplicativos).

O administrador da VM me disse que trata isso como perfeitamente normal e que essa é sua maneira comum de ajustar as caixas.

Sua idéia era que, se o box tivesse muitas páginas de memória RAM fria, o kernel as separaria para liberar páginas de memória RAM “reais” para que pudessem ser usadas para armazenar dados em cache.

Quanto a mim, eu conhecia o swap se fosse a última coisa a usar se gostamos de ter fast box. Então, eu costumava definir a troca para valores mais baixos (para que o kernel não gostasse de trocar páginas), mas essa abordagem pessoal era que é bom trocar tantos dados quanto tivermos espaço de troca, tendo assim mais cache. E sim, ele disse, o kernel também pode armazenar páginas trocadas em cache, então não adianta manter a troca livre.

Por favor, acalme-me: o seap da VM deve ser usado da melhor forma e a memória RAM deve ser liberada dessa maneira para que o cache do disco do kernel possa ser usado de maneira mais eficaz?

Para ser exato, havia no momento: 1 Gb de espaço swap (utilizado a 100%), a VM possui 32 Gb de memória RAM e a memória RAM disponível era de 13 Gb.

Responder1

Uma pequena quantidade de swap (1GiB é pequeno em comparação com 32GiB de RAM) usada inteiramente é adequada. O que isso significa é exatamente como o administrador da VM descreveu: dada a disponibilidade de RAM, qualquer coisa que acabe em swap não é utilizada, e é melhor mantê-la lá e usar a memória física correspondente para fins mais urgentes - sejam cargas de trabalho ativas ou cache de disco.

O uso excessivo de troca só é preocupante se a quantidade de troca for grande ou se as páginas estiverem sendo trocadas devido à pressão da memória e, mais importante, se a trocaatividadeé importante,ou sejaif vmstatmostra páginas sendo trocadas o tempo todo. Isso indica que o sistema está se debatendo, gastando seu tempo removendo páginas apenas para ter que trocá-las novamente; isso acontece quando a quantidade de RAM é muito pequena para a carga de trabalho do sistema.

O sistema no qual estou escrevendo tem um pouco mais de troca e está em uma situação semelhante à sua VM:

$ free -m
              total        used        free      shared  buff/cache   available
Mem:          32054       19405        1098        2365       11550        9827
Swap:          6410        6410           0

O desempenho interativo é bom e vmstatnão mostra atividade de troca.

informação relacionada