Não consigo imaginar por que um arquivo de troca precisa ter tamanho fixo. Por que não permitir que ele seja redimensionado dinamicamente, como o arquivo de imagem do disco rígido de uma caixa virtual?
Não consigo imaginar por que um arquivo de troca precisa ter tamanho fixo. Por que não permitir que ele seja redimensionado dinamicamente, como o arquivo de imagem do disco rígido de uma caixa virtual?
Respostas:
Parece que o Linux não suporta o dimensionamento dinâmico de arquivos de troca (de qualquer forma, não consegui detectar que um arquivo de troca havia mudado de tamanho sem um swapoff
/ swapon
).
Presumivelmente, é mais fácil assumir que um arquivo de troca não altera o tamanho do arquivo dinamicamente ao escrever um código para suportá-lo. Também não vejo grande utilidade para isso. Como você pode usar vários arquivos de troca, nada impede que você crie mais arquivos de troca, conforme necessário.
Observe também este parágrafo na página de swapon
manual :
The swap file implementation in the kernel expects to be able to write
to the file directly, without the assistance of the filesystem. This
is a problem on preallocated files (e.g. fallocate(1)) on filesystems
like XFS or ext4, and on copy-on-write filesystems like btrfs.
Eu acho que o mesmo problema se aplicaria a um arquivo de troca de tamanho dinâmico.
SwapSpace é um utilitário que permitirá que você faça trocas dinamicamente dimensionadas, se é isso que você está procurando. Eu acredito que ele está disponível no Ubuntu.
Sei que é tarde, mas 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-swapfile
e finalmente
sudo service dphys-swapfile start
O espaço de troca pode ser adicionado a um sistema em execução usando o swapon
comando Ele precisa de um swapfile / partição existente (não utilizado). Para criar um, use o dd
comando para alocar um arquivo contíguo e mkswap
adicione as informações de controle corretas ao arquivo / partição.
Para remover um arquivo de troca, use swapoff
; o arquivo pode ser excluído.
Eu suspeito que é isso que SwapSpace
daemon que @ user231695 mencionado faz.
Observe que o swapoff pode ser uma operação lenta se o swapfile estiver em uso; todos os dados devem ser transferidos para outra área de troca.