Por muitos anos, configurei minhas máquinas Linux sem troca, pois elas tinham memória suficiente para fazer o que eu precisava e eu preferiria que um processo fosse morto se usasse muita memória, em vez de ficar cada vez maior e silenciosamente desacelerar tudo.
No entanto, descobri que precisava de swap para usar a hibernação em um laptop, então criei uma partição de troca e a hibernação está funcionando bem.
Recentemente, descobri que a máquina estava entrando em espera em vez de hibernar e, após investigação, descobriu-se que não havia espaço suficiente na partição de troca para que a hibernação ocorresse. Isso ocorreu porque a partição de troca que eu achava que estava reservada para hibernação, na verdade estava sendo usada como espaço de troca normal.
Existe alguma maneira de dizer ao Linux para usar uma determinada partição de troca apenas para hibernação e não usá-la para troca durante a operação normal?
EDIT: De acordo com a pergunta abaixo, a máquina tem 8 GB de memória e a partição de troca também é de 8 GB, já que eu a queria apenas para uso de hibernação e não para uso de troca real, portanto, qualquer tamanho maior que o tamanho da memória da máquina teria sido desperdiçado. O problema subjacente é que, como a partição de troca de 8 GB está sendo usada como memória adicional, a máquina agora pode alocar até 16 GB de memória (8 GB física + 8 GB de troca). Recentemente, ele tinha 10 GB em uso e, é claro, não podia hibernar, pois 10 GB não cabiam na partição de troca de 8 GB.
Remova ou comente a linha correspondente de/etc/fstab
. Exemplo no meu sistemaExcluído porquepm-hibernate
precisa de uma partição swap "ativada" para funcionarMantenha o swap ativado (deixe-o em paz
/etc/fstab
), mas peça explicitamente ao kernel para ignorá-lo.Isso é feito usando o parâmetro sysctl
vm.swappiness
para 0 (os valores válidos são 0-100; mais alto fará a troca do kernel de forma mais agressiva; o padrão é 60).Para garantir que essa configuração seja persistente durante as reinicializações, edite
/etc/sysctl.conf
e adicione uma linhavm.swappiness=0
.