Está limpando uma troca completa necessária / sábia?

6

Nós temos uma máquina linux, na qual a partição swap é preenchida ao limite de tempos em tempos. Ainda há bastante RAM livre, por isso não deve haver risco de ficar sem memória.
O curso normal de ação no caso de uma troca completa é executar um swapoff -a && swapon -a para limpar completamente o swap.

Minhas perguntas:

  1. A partição de troca completa é um problema que precisa de atenção em primeiro lugar, ou é algo "normal", que pode ser ignorado.
  2. A desativação e desativação da troca é uma boa coisa a fazer, ou piora a situação, porque o kernel agora fica ocupado limpando o espaço de troca?
  3. Qual seria a melhor (ou a melhor) maneira de reagir?
por Fawwioc 04.08.2015 / 08:06

3 respostas

9

Limpar o swap não é necessário nem útil. Leia o linuxatemyram .

O kernel tem um cache de páginas bastante eficiente. Portanto, a RAM é usada para dados úteis (por exemplo, fragmentos de segmentos de arquivos acessados recentemente ou memória heap), e dados menos úteis foram trocados para a zona de troca.

Talvez sua zona de troca seja pequena demais. Você também pode trocar para algum arquivo. Veja este .

    
por 04.08.2015 / 08:35
2

Na minha experiência, uma partição de troca completa só está acontecendo nos casos em que o uso de memória foi alto. Sob tais circunstâncias, desabilitar o swap pode ser um problema, porque pode não haver memória suficiente para carregar tudo de volta do swap.

Se você tentar desabilitar a troca com memória livre insuficiente, o sistema pode parar de responder ou começar a interromper processos para liberar memória.

Se o uso de memória tiver sido alto e mais tarde descartado novamente, a utilização do swap poderá ser alta, mas eu ficaria surpreso em ver isso em 100%, já que o que causou a liberação da memória provavelmente já liberou pelo menos algumas páginas de trocar.

Se você desabilitar a troca após o uso de memória já ter caído, provavelmente você não está causando muitos problemas desabilitando a troca. Mas também não acho que você esteja fazendo nada que beneficie o desempenho do sistema.

Sempre que vejo um sistema com swap completo, consegui melhorar o desempenho adicionando mais swap.

    
por 04.08.2015 / 13:59
0

Como as outras respostas dizem, não é uma boa ideia limpar a troca manualmente. No entanto, se você perceber que a troca e a memória estão completamente preenchidas e que outros programas têm problemas de execução por causa disso, algo pode estar errado.

Nesse caso, execute htop e classifique por uso de memória clicando em MEM% . Isso permitirá que você encontre programas que usam uma quantidade extraordinariamente alta de memória. Se você encontrar algo que parece não se encaixar lá (um utilitário pequeno, por exemplo), vá para o google e tente descobrir se esse programa tem um vazamento de memória conhecido. É improvável, mas pode acontecer.

No meu caso, descobri que o gerenciador de notificações do i3 dunst tinha um vazamento de memória que era conhecido e corrigido, mas a versão fixa não estava nos repositórios da minha distro.

Espero que isso ajude alguém lá fora!

    
por 15.11.2017 / 15:11

Tags