Como você adiciona swap a uma instância do EC2?

Atualmente estou executando uma micro instância ec2 e descobri que a instância ocasionalmente fica sem memory.

Além de usar um tamanho de instância maior, o que mais pode ser feito?

Uma correção para esse problema é adicionar espaço de swap (ou seja, paging ) à instância.

A paginação funciona criando uma área em seu disco rígido e usando-a para memory extra, esta memory é muito mais lenta que a memory normal, embora muito mais dela esteja disponível.

Para adicionar esse espaço extra à sua instância, digite:

 sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024 sudo /sbin/mkswap /var/swap.1 sudo chmod 600 /var/swap.1 sudo /sbin/swapon /var/swap.1 

Se você precisar de mais de 1024, mude para algo maior.

Para habilitá-lo por padrão após a reboot, adicione esta linha ao / etc / fstab:

 /var/swap.1 swap swap defaults 0 0 

A troca deve ocorrer no disco de armazenamento de instância (efêmero) e não em um dispositivo EBS. Trocar causará muito IO e aumentará o custo no EBS. O EBS também é mais lento que o Instance Store e o Instance Store é liberado com certos tipos de Instâncias do EC2 .

Geralmente será montado em / mnt, mas se não for executado

 sudo mount /dev/xvda2 /mnt 

Para criar um arquivo de troca neste dispositivo, faça o seguinte para um arquivo de swap de 4GB

 sudo dd if=/dev/zero of=/mnt/swapfile bs=1M count=4096 

Certifique-se de que nenhum outro usuário possa visualizar o arquivo de troca

 sudo chown root:root /mnt/swapfile sudo chmod 600 /mnt/swapfile 

Faça e marque como swap

 sudo mkswap /mnt/swapfile sudo swapon /mnt/swapfile 

Adicione / Certifique-se de que o seguinte esteja em seu / etc / fstab

 /dev/xvda2 /mnt auto defaults,nobootwait,comment=cloudconfig 0 2 /mnt/swapfile swap swap defaults 0 0 

Por fim, habilite o swap

 sudo swapon -a 

Depois de aplicar as etapas mencionadas por ajtrichards, você pode verificar se sua instância de camada livre do Amazon está usando swap usando este comando

 cat /proc/meminfo 

resultado:

 ubuntu@ip-172-31-24-245:/$ cat /proc/meminfo MemTotal: 604340 kB MemFree: 8524 kB Buffers: 3380 kB Cached: 398316 kB SwapCached: 0 kB Active: 165476 kB Inactive: 384556 kB Active(anon): 141344 kB Inactive(anon): 7248 kB Active(file): 24132 kB Inactive(file): 377308 kB Unevictable: 0 kB Mlocked: 0 kB 

SwapTotal: 1048572 kB

Troca Livre: 1048572 kB

 Dirty: 0 kB Writeback: 0 kB AnonPages: 148368 kB Mapped: 14304 kB Shmem: 256 kB Slab: 26392 kB SReclaimable: 18648 kB SUnreclaim: 7744 kB KernelStack: 736 kB PageTables: 5060 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 1350740 kB Committed_AS: 623908 kB VmallocTotal: 34359738367 kB VmallocUsed: 7420 kB VmallocChunk: 34359728748 kB HardwareCorrupted: 0 kB AnonHugePages: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 637952 kB DirectMap2M: 0 kB 

Você pode adicionar uma troca de 1 GB à sua instância com estes comandos:

 sudo dd if=/dev/zero of=/swapfile bs=1M count=1024 sudo mkswap /swapfile sudo swapon /swapfile 

Para habilitá-lo por padrão após a reboot, adicione esta linha ao /etc/fstab :

 /swapfile swap swap defaults 0 0 

Se você estiver em instâncias t2 ( t2.micro , t2.medium , t2.small ), não haverá armazenamento efêmero ou de instância disponível para você. Então você precisa apenas criar seu swap no EBS que, dependendo do seu caso de uso, pode ou não ser uma boa idéia. Caso contrário, siga a resposta do @David e crie seu swap no armazenamento efêmero para evitar o pagamento de custos de EBS.

Mais informações: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html Há uma tabela que mostra quanto armazenamento efêmero você recebe para cada tipo de instância.

Você pode criar espaço de troca usando as seguintes etapas Aqui estamos criando swap em /home/

  1. dd if=/dev/zero of=/home/swapfile1 bs=1024 count=8388608
    Aqui count é a contagem de kilobytes do espaço de troca

  2. mkswap /home/swapfile1

  3. vi /etc/fstab
    fazer input:
    /home/swapfile1 swap swap defaults 0 0

  4. corre:
    swapon -a

Podemos adicionar espaço de troca em qualquer servidor

criar um arquivo usando o comando dd

  #dd if=/dev/zero of=/swapfile bs=1M count=2048 or #dd if=/dev/zero of=/swapfile bs=1024M count=2 

bs é blocksize e count refere-se ao tamanho em MB ou GB

podemos usar vice-versa

Após a criação, altere a permissão do arquivo:

  #chmod 600 /swapfile 

Em seguida, faz o arquivo:

  #mkswap /swapfile 

Em seguida, ative o arquivo de troca com o comando swapon:

  #swapon /swapfile 

Verifique com comando livre se a troca está ativada ou não:

  #free -h #swapon -s 

Experimente o espaço http://pqxx.org/development/swapspace/

A maioria das distros tem pacotes.

No EC2, você pode querer alterar “swappath” para / mnt ou high-iops disk.

Você pode usar o seguinte script para adicionar swap no Amazon Linux.

https://github.com/chetankapoor/swap

Baixe o script usando wget:

 wget https://raw.githubusercontent.com/chetankapoor/swap/master/swap.sh -O swap.sh 

Em seguida, execute o script com o seguinte formato:

 sh swap.sh 2G 

Para um tutorial completo, você pode visitar:

https://installvirtual.com/shell-script-to-create-swap/