Aumento dinâmico do arquivo de troca no Debian

10

Eu sei como criar um arquivo de swap e usá-lo como swap. Mas eu tenho que configurar o tamanho do arquivo antecipadamente e o espaço é usado no disco, se a troca é usada ou não.

Como crio uma troca que tem um tamanho inicial de 0 e cresce sob demanda?

rubo77
fonte
@Gilles: Estou apenas curioso - Por que você editou o título (além do erro de digitação)? Não é desejável ter perguntas totalmente pronunciadas aqui?
rubo77
1
É melhor evitar palavras inúteis, especialmente no início do título, onde as pessoas prestam mais atenção. Consulte Como escrevo um bom título? . "Troca dinâmica de crescimento" fornece a ideia essencial. "Como faço para criar" não começa a indicar do que se trata a questão. Existem pessoas que preferem fazer perguntas sobre títulos de perguntas porque são perguntas, mas é uma razão boba: o título também é o título das respostas.
Gilles 'SO- stop be evil'

Respostas:

3

O espaço de troca é antigo e sem manutenção e pode levar, um dia, a problemas nos sistemas modernos. Eu acho que a melhor solução para troca dinâmica é:

sudo apt install dphys-swapfile
sudo update-rc.d dphys-swapfile enable

então estabelecendo CONF_SWAPFACTOR=2-se /etc/dphys-swapfilee finalmente

sudo service dphys-swapfile start
Denis Pitzalis
fonte
Isso funciona, mas ter em mente, que poderia ser melhor sem swap, ver unix.stackexchange.com/a/136133/20661
rubo77
10

O SwapSpace é um utilitário que cria um 'arquivo de troca dinâmico' que, de acordo com os requisitos do sistema operacional, altera seu tamanho.

Assim, você pode até esquecer de criar um arquivo de troca virtual e apenas instalar o "SwapSpace", que criará automaticamente um para você e até o redimensionará quando necessário.

Você também pode usar 'Swapspace' lado a lado com um arquivo de troca criado manualmente e, quando o manual for preenchido, 'Swapspace' criará automaticamente outro para o sistema operacional, para que o sistema sempre tenha um espaço de troca e aprimore a estabilidade.

Outra coisa útil sobre o "SwapSpace" é que, sempre que possível, reduz o tamanho do SwapSpace e "libera" esses bytes no sistema de arquivos do usuário e, de acordo com os desenvolvedores, essa redução ajuda a aumentar o desempenho do arquivo de troca ( além disso, seu espaço “precioso” no disco rígido também não é desperdiçado).

Instale com

sudo apt-get install swapspace

E ajuste o arquivo de configuração de acordo com suas necessidades. Defino o mínimo para 0na minha máquina debian VM com apenas 8 GB de HDD


Além disso, também defini o swappiness para 0minimizar o uso do precioso espaço do HDD na minha VM:

Para alterar o valor de troca do sistema, abra /etc/sysctl.confcomo raiz. Em seguida, altere ou adicione esta linha ao arquivo:

vm.swappiness = 0

(Reinicialize para que a alteração entre em vigor)

rubo77
fonte
Isso não suporta swsusp / suspending to swap file, a menos que o tamanho do arquivo de swap criado já seja grande o suficiente para conter o despejo de RAM.
soze 26/08/15
Então, como podemos garantir que o arquivo de troca fique grande o suficiente para conter a ram?
rubo77
Ter um arquivo tamanho de swap fixa o tamanho do RAM de suspensão, e depois usar partição swap para troca de tamanho dinamicamente
Tom Hale
Funcionou para mim. Isso é super útil para pequenos discos SSD.
Adrian Lopez
0

Afaik, qualquer partição de swap que você faria usando o fdisk, por exemplo, precisaria de espaço maior que 0, pois você está modificando o espaço de um disco existente e realocando-o em outro lugar.

De qualquer forma, e respondendo à sua pergunta, você pode facilmente criar uma pequena partição, atribuí-la como swap no fdisk e depois:

1) desabilite a troca com swapoff -v 2) redimensione a partição com lvresize 3) formate a partição com mkswap 4) reative o espaço de troca comswapon -v

Depois, você pode usar cat /proc/swapspara verificar se foi atualizado ou não. Você pode usar isso facilmente em um script, dependendo das especificações do sistema, e executá-lo sob demanda sempre que precisar aumentar esse espaço de troca. Algo como:

$ swapoff -v /dev/swapvol1
$ lvresize /dev/swapvol1 -L +1G
$ mkswap /dev/swapvol1
$ swapon -v /dev/swapvol1
AleksanderKseniya
fonte
1
Isso não responde à pergunta porque o tamanho da troca é alterado manualmente, não por demanda. Além disso, o redimensionamento do VE não é útil: onde você encontra espaço para crescer? como o espaço livre na contração não é desperdiçado? A pergunta é sobre um arquivo de permuta, que resolve o problema do espaço livre - está disponível para outros arquivos.
Gilles 'SO- stop be evil'
Alterar o tamanho do swap sob demanda é uma boa idéia, mas o swapspace não cobre o cenário de swsusp sendo usado para oferecer suporte à hibernação. Acredito que essa resposta possa ser mais sensata para os usuários que precisam de suporte à hibernação. Até o swapspace lidar com isso melhor, é claro.
soze 26/08/15