Parece-me que um arquivo de troca é mais flexível.
Parece-me que um arquivo de troca é mais flexível.
Respostas:
Um arquivo de troca é mais flexível, mas também mais falível que uma partição de troca. Um erro no sistema de arquivos pode danificar o arquivo de troca. Um arquivo de troca pode ser um problema para o administrador, pois o arquivo não pode ser movido ou excluído. Um arquivo de troca não pode ser usado para hibernação. Um arquivo de troca era um pouco mais lento no passado, embora a diferença seja insignificante hoje em dia.
A vantagem de um arquivo de troca não é ter que decidir o tamanho antecipadamente. No entanto, no Linux, você ainda não pode redimensionar um arquivo de troca online: é necessário cancelar o registro, redimensionar e registrar novamente (ou criar um arquivo diferente e remover o antigo). Portanto, não há muito benefício em um arquivo de troca no Linux, comparado a uma partição de troca. É principalmente útil quando você precisa temporariamente de mais memória virtual, e não como um acessório permanente.
Uma partição de troca pode ser preferida, pois evita uma dependência do sistema de arquivos quando tudo o que você precisa é de um conjunto de memórias endereçáveis.
Mas nada impede que você use um arquivo de troca em vez de uma partição de troca ou além de uma partição de troca.
Crie o arquivo:
dd if=/dev/zero of=/extraswap bs=1M count=512
Inicialize o conteúdo do arquivo:
mkswap /extraswap
Use-o:
swapon /extraswap
Veja se funcionou:
free -m
Para começar a usar o swapfile sempre na inicialização, edite / etc / fstab e adicione
/extraswap swap swap defaults 0 0
[1] http://www.redhat.com/docs/manuals/linux/RHL-8.0-Manual/custom-guide/s1-swap-adding.html
moreswap
em um terminal se de repente precisar de mais espaço de troca:alias moreswap='swapfile=`mktemp /tmp/swapXXXX` && sudo touch $swapfile && sudo dd bs=512 count=1M if=/dev/zero | tee $swapfile | pv -s 512M && sudo mkswap $swapfile && sudo swapon $swapfile'
Talvez o principal motivo seja o fato de o kernel principal suspender em disco não funcionar com arquivos de troca. Por exemplo, as instruções do wiki Debian são instaladas uswsusp
se você precisar disso.
Mais recentemente, os arquivos de swap não funcionam se o sistema de arquivos estiver btrfs
, portanto, é mais simples para as distribuições sempre criarem swap como uma partição.
É vagamente mencionado que o uso de um arquivo para troca teve desempenho potencialmente mais baixo que uma partição, antes da versão 2.6 do kernel. https://www.kernel.org/doc/gorman/html/understand/understand014.html#text15
Para completar, adicionarei minha própria resposta:
Como dito pelo @Gilles, um arquivo de troca não pode ser usado para hibernação. Ao usar um arquivo de permuta, o sistema deve localizar o cabeçalho do arquivo de permuta, mas para fazer isso, o sistema de arquivos que contém o arquivo de permuta deve ser montado e um sistema de arquivos com registro em diário - por exemplo, ext3, ext4 e basicamente todos os sistemas de arquivos modernos usados pelo Linux - não pode ser montado durante a retomada do disco. (Na realidade, existem maneiras de fazê-lo, mas bastante complicado.)
Fonte: https://www.kernel.org/doc/Documentation/power/swsusp-and-swap-files.txt
Eu acho que é principalmente porque o tempo de acesso aos dados localizados em uma partição é menor. O objetivo do arquivo de troca é mais para ajudar o administrador do sistema, quando ele está realmente sem RAM e precisa operar grandes operações que talvez causariam um travamento no sistema. Nesse caso, ele criará esporadicamente arquivos de troca quando necessário.
Mas de qualquer maneira você pode ter os dois.