Como posso criar um arquivo de troca?

10

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

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

    
por Vlastimil 26.10.2015 / 22:47

1 resposta

16

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

Além disso, eu tenho em várias máquinas um arquivo de troca em mdadm RAID, portanto, há outra sobrecarga. Mas se você ajustar vm.swappiness sabiamente para um valor mais aceitável do que 60, que é o padrão, você não deve ter problemas .

Por exemplo, tenho um servidor de 32 GB de RAM com um arquivo de swap de 32 GB no RAID6 com vm.swappiness = 1. Citando o Wikipédia:

vm.swappiness = 1: Kernel version 3.5 and over, as well as Red Hat kernel version 2.6.32-303 and over: Minimum amount of swapping without disabling it entirely.

Neste exemplo, criamos um arquivo de troca:

  • 8 GB de tamanho

  • Localizado em /raid1/

Altere essas duas coisas de acordo com suas necessidades.

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

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

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

    Opcionalmente, se o seu sistema oferecer suporte, você poderá adicionar status=progress a essa linha de comando.

    Note que o tamanho especificado aqui em G está em GiB (múltiplos de 1024).

  3. Altere as permissões do arquivo de troca, de forma que somente root possa acessá-lo:

    chmod 600 /raid1/swapfile
    
  4. Transforme este arquivo em um arquivo de troca:

    mkswap /raid1/swapfile
    
  5. Ativar 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ê é especializado, por exemplo, nano se não tiver certeza:

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

    /raid1/swapfile        none        swap        sw        0        0
    
por 26.10.2015 / 22:47

Tags