Por que o Linux usa uma partição de troca em vez de um arquivo?

31

Parece-me que um arquivo de troca é mais flexível.

    
por Cheng 18.09.2010 / 17:34

5 respostas

32

Um arquivo de troca é mais flexível, mas também mais falível que uma partição swap. Um erro no sistema de arquivos pode danificar o arquivo de troca. Um arquivo de troca pode ser um problema para o administrador, já que 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 foi um pouco mais lento no passado, embora a diferença seja insignificante nos dias de hoje.

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: você precisa cancelar o registro, redimensionar e, em seguida, registrar novamente (ou criar um arquivo diferente e remover o antigo). Portanto, não há muito benefício para um arquivo de troca no Linux, em comparação com uma partição de troca. É útil principalmente quando você precisa temporariamente de mais memória virtual do que como um dispositivo permanente.

    
por 18.09.2010 / 18:29
27

Uma partição de troca pode ser preferida porque evita uma dependência no sistema de arquivos quando tudo que você precisa é de um conjunto de memórias endereçáveis.

Mas nada impede que você use um arquivo de swap em vez de uma partição swap, ou além de uma partição swap.

  • Crie o arquivo:

    dd if=/dev/zero of=/extraswap bs=1M count=512
    
  • Inicialize o conteúdo do arquivo:

    mkswap /extraswap
    
  • Use:

    swapon /extraswap
    
  • Veja se funcionou:

    free -m
    

Para começar a usar o swapfile sempre na inicialização, edite o / etc / fstab e adicione

/extraswap           swap          swap    defaults    0 0

[1] link

    
por 18.09.2010 / 17:55
1

Talvez o motivo principal seja que o kernel principal suspender para o disco não funciona com arquivos de troca. Por exemplo, as instruções da wiki da Debian devem instalar uswsusp se você precisar disto.

Mais recentemente, os arquivos de troca não funcionam se o sistema de arquivos for btrfs , portanto, é mais fácil para as distribuições sempre criarem a troca como uma partição.

É vagamente mencionado que usar um arquivo para swap teve desempenho potencialmente menor do que uma partição, antes da versão 2.6 do kernel. link

    
por 19.07.2017 / 20:04
1

Para completar, adicionarei minha própria resposta:

Como dito por @Gilles, um arquivo de troca não pode ser usado para hibernação. Ao usar um arquivo de troca, o sistema deve localizar o cabeçalho do arquivo de troca, mas, para fazer isso, o sistema de arquivos que contém o arquivo de troca deve ser montado e um sistema de arquivos com diário - por exemplo, ext3, ext4 e, basicamente, todos os sistemas de arquivos modernos usados pelo Linux - não podem ser montados durante a retomada do disco. (Na verdade, existem maneiras de fazer isso, mas bastante complicadas.)

Fonte: link

    
por 29.03.2018 / 12:47
0

Acho que é principalmente porque o tempo de acesso aos dados localizados em uma partição é menor. O ponto do arquivo de swap é mais para ajudar o administrador do sistema quando ele está realmente sem memória RAM e precisa operar operações enormes que poderiam travar seu sistema. Neste caso, ele criará esporadicamente arquivos de troca quando necessário.

Mas de qualquer maneira você pode ter os dois.

    
por 18.09.2010 / 18:07

Tags