
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 swappiness
ajustá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 swappiness
valor 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.conf
arquivo.
Se quiser desabilitar completamente a troca, você pode usar (comentando a entrada swapoff -a
relevante 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.