Por que o sistema troca enquanto tem RAM suficiente e isso é prejudicial?

Por que o sistema troca enquanto tem RAM suficiente e isso é prejudicial?

Eu opero um servidor root bare metal ubuntu 16.04 de 64 GB de RAM com SSDs que está sob carga bastante pesada. Agora aprendi que os servidores em nuvem geralmente desativam a troca, pois podem desgastar os SSDs no longo prazo. Isso me preocupa com meu servidor, pois ele troca enquanto não há necessidade, pois há RAM suficiente disponível.

Captura de tela do painelaqui

Isso é normal ou você recomendaria tomar medidas, por exemplo, desativar a troca?

Responder1

Resposta curta:sim, é normal e você não precisa se preocupar com isso.

Resposta longa:o linux usa alguma troca mesmo se houver memória suficiente disponível. A justificativa é que armazenar em cache dados lidos/gravados recentemente pode ser mais útil do que manter códigos e dados de programas antigos e inativos na RAM. Essa tendência pode ser modificada por meio do swappinessajustável sysctl. Dedocumentos do kernel:

troca

Este controle é usado para definir o quão agressivo o kernel irá trocar páginas de memória. Valores mais altos aumentarão a agressividade, valores mais baixos diminuirão a quantidade de swap. Um valor 0 instrui o kernel a não iniciar a troca até que a quantidade de páginas livres e com suporte de arquivo seja menor que o limite máximo em uma zona.

O valor padrão é 60.

Se você realmente deseja reduzir a troca, pode diminuir o swappinessvalor viasysctl vm.swappiness=10 ou echo 10 > /proc/sys/vm/swappiness. Lembre-se de que isso é válido até uma reinicialização; para mantê-lo entre as reinicializações, você precisa editar o /etc/sysctl.confarquivo.

Se quiser desabilitar completamente a troca, você pode usar (comentando a entrada swapoff -arelevante para permitir que ela persista entre as reinicializações)./etc/fstab

Responder2

Não grite só porque o Linux está trocando,na verdadeem um servidor íntegro isso éperfeitamente normal, senão mesmo um sinal de um servidor otimizado.Isso ocorre porque a troca "baixa" podeàs vezes, você e suas unidades economizam ações preciosas de E/S nas unidades. Quanto menos atividades na unidade (processos caros mesmo em arrays NVMe de última geração), melhor.

Tambéma menos que a troca seja agressivaisso causará danos insignificantes a um SSD. Especialmente muitos SSDs usados ​​para nuvens sãoconstruído para durar na faixa de PB(s) antes que todas as células morram.

Responder3

A memória é alocada e desalocada o tempo todo e isso leva à fragmentação: uma parte da memória alocada é seguida por uma parte da memória não alocada e assim por diante. As porções não alocadas (livres) de memória podem ficar cada vez menores com o tempo. Em algum momento, um processo pode precisar alocar alguma quantidade de memória que não está disponível como um único bloco contíguo. A troca ajuda a liberar memória e a criar porções contíguas maiores de memória livre que de outra forma não estariam disponíveis.

informação relacionada