Eu tenho a instalação do Archlinux x86_64 no meu laptop e desktop. No momento da instalação, criei uma partição swap com fdisk e habilitei-a com sudo swapon /dev/sda3
.
Mas mesmo com sysctl vm.swappiness
definido como 0
, meu sistema ainda grava na partição swap quando minha memória do sistema está meio usada e, no momento, copio/movo um arquivo grande para algum lugar, o que torna o sistema muito lento. Nesse caso, eu costumava desativar a troca com sudo swapoff /dev/sda3
.
Hoje em dia, geralmente desativo a troca após a inicialização e a habilito quando realmente preciso da troca (e tenho um script ruby para monitorar o uso da RAM e ativar a troca quando necessário). A troca é ativada novamente na próxima inicialização. Não tenho entradas no /etc/fstab
swap referente.
Existe uma maneira de desativar permanentemente o dispositivo de troca sem excluir o dispositivo?
O ArchWiki menciona que a troca no Archlinux é gerenciada pelo systemd e descreve como desabilitar a ativação automática mascarando a unidade systemd responsável pela troca. Assim, no Archlinux, o seguinte deve alcançar o que você procura:
#swapoff -a
ou passe um nome de dispositivo/arquivo específico para uma troca específica. Neste ponto, a troca está desabilitada, mas será automaticamente reativada e habilitada durante a próxima inicialização.#systemctl --type swap
. Para cada*.swap
unidade encontrada, mascare-a usando#systemctl mask <unit_name>
.Esse processo pode ser desfeito apenas executando
systemctl unmask <unit_name>
nas unidades mascaradas anteriormente e, em seguida, ativando a troca usandoswapon
.Isso é tirado dos dois seguintes artigos do Archwiki:
Você pode deixar o systemd fazer isso criando o arquivo
/lib/systemd/system/turnswapoff.service
com o conteúdo:E certifique-se de que ele seja executado na inicialização
sudo systemctl enable turnswapoff
Pode ser que a localização de
swapoff
não seja/sbin/swapoff
. Você pode verificar issowhich swapoff
e alterá-lo se necessário