Como posso criar um arquivo de troca?

11

Eu sei como criar e usar uma partição swap, mas também posso usar um arquivo?

Como posso criar um arquivo de permuta em um sistema Linux?

LinuxSecurityFreak
fonte

Respostas:

18

Deixe claro que há um pouco de sobrecarga ao lidar com um arquivo em vez de uma partição.

Além disso, eu mesmo tenho em várias máquinas um arquivo de troca no mdadmRAID, portanto, há mais uma sobrecarga. Mas se você ajustar vm.swappinesssabiamente a um valor mais aceitável que 60, que é o padrão, não deverá ter problemas.

Por exemplo, eu tenho um servidor de 32 GB de RAM com um arquivo de swap de 32 GB no RAID6 com vm.swappiness= 1. Citando a Wikipedia:

vm.swappiness = 1: Kernel versão 3.5 e superior, assim como o Red Hat versão 2.6.32-303 e superior: quantidade mínima de trocas sem desativá-lo completamente.

Neste exemplo, criamos um arquivo de troca:

  • 8 GB de tamanho

  • Localizado em /raid1/

Mude essas duas coisas de acordo com suas necessidades.

  1. Abra o terminal e torne-se root( su); se você tiver sudoativado, você também pode fazer, por exemplo sudo -i; veja man sudotodas as opções):

    sudo -i
    
  2. Aloque espaço para o arquivo de troca:

    dd if=/dev/zero of=/raid1/swapfile bs=1G count=8
    

    Opcionalmente, se o seu sistema suportar, você poderá adicionar status=progressa essa linha de comando.

    Observe que o tamanho especificado aqui Gé em GiB (múltiplos de 1024).

  3. Altere as permissões do arquivo de troca, para que somente ele rootpossa acessá-lo:

    chmod 600 /raid1/swapfile
    
  4. Faça deste arquivo um arquivo de troca:

    mkswap /raid1/swapfile
    
  5. Ative o arquivo de troca:

    swapon /raid1/swapfile
    
  6. Verifique se o arquivo de troca está em uso:

    cat /proc/swaps
    
  7. Abra um editor de texto com o qual você tenha experiência neste arquivo, por exemplo, nanose não tiver certeza:

    nano /etc/fstab
    
  8. Para disponibilizar esse arquivo de troca após a reinicialização, adicione a seguinte linha:

    /raid1/swapfile        none        swap        sw        0        0
    
LinuxSecurityFreak
fonte