¿Cómo se puede agregar el intercambio a una instancia de EC2?

Actualmente estoy ejecutando una instancia de ec2 micro y he estado encontrando que la instancia de vez en cuando se queda sin memoria.

Además de usar un tamaño de instancia más grande, ¿qué más se puede hacer?

Una solución para este problema es agregar espacio de swap (es decir, paging ) a la instancia.

La megafonía funciona creando un área en su disco duro y usándola para memoria adicional, esta memoria es mucho más lenta que la memoria normal, sin embargo, hay mucho más disponible.

Para agregar este espacio adicional a su instancia, escriba:

 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 

Si necesita más de 1024, cambie eso a algo más alto.

Para habilitarlo de forma predeterminada después del reinicio, agregue esta línea a / etc / fstab:

 /var/swap.1 swap swap defaults 0 0 

El intercambio debe tener lugar en el disco de almacenamiento de instancias (efímero) y no en un dispositivo EBS. El intercambio causará una gran cantidad de IO y boostá el costo en EBS. EBS también es más lento que Instance Store y el Instance Store sale gratis con ciertos tipos de instancias EC2 .

Por lo general, se montará en / mnt, pero si no se ejecuta

 sudo mount /dev/xvda2 /mnt 

Para crear un archivo de intercambio en este dispositivo haga lo siguiente para un archivo de intercambio de 4GB

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

Asegúrese de que ningún otro usuario pueda ver el archivo de intercambio

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

Marca y marca como intercambio

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

Agregue / asegúrese de que lo siguiente esté en su / etc / fstab

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

Por último habilitar intercambio

 sudo swapon -a 

Después de aplicar los pasos mencionados por ajtrichards, puedes verificar si tu instancia de tier libre en 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

SwapFree: 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 

Puede agregar un intercambio de 1 GB a su instancia con estos comandos:

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

Para habilitarlo de forma predeterminada después del reinicio, agregue esta línea a /etc/fstab :

 /swapfile swap swap defaults 0 0 

Si está en instancias de t2 ( t2.micro , t2.medium , t2.small ), no hay ningún almacenamiento efímero o de instancia disponible para usted. Por lo tanto, solo debe crear su intercambio en EBS que, de acuerdo con su caso de uso, puede o no ser una buena idea. De lo contrario, siga la respuesta de @David y cree su intercambio en el almacenamiento efímero para evitar el pago de los costos de EBS.

Más información: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html hay una tabla que muestra cuánto almacenamiento efímero obtiene para cada tipo de instancia.

Puede crear espacio de intercambio usando los siguientes pasos Aquí estamos creando swap en /home/

  1. dd if=/dev/zero of=/home/swapfile1 bs=1024 count=8388608
    Aquí la cuenta es el recuento de kilobytes de espacio de intercambio

  2. mkswap /home/swapfile1

  3. vi /etc/fstab
    hacer la entrada:
    /home/swapfile1 swap swap defaults 0 0

  4. correr:
    swapon -a

Podemos agregar espacio de intercambio en cualquier servidor

crea un archivo usando el comando dd

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

bs es el tamaño de bloque y el recuento se refiere al tamaño en MB o GB

podemos usar viceversa

Después de la creación, cambie el permiso del archivo:

  #chmod 600 /swapfile 

Luego makewap el archivo:

  #mkswap /swapfile 

A continuación, habilite el archivo de intercambio con el comando de swapon:

  #swapon /swapfile 

Verifique con comando libre si el intercambio está habilitado o no:

  #free -h #swapon -s 

Pruebe swapspace http://pqxx.org/development/swapspace/

La mayoría de las distribuciones lo tienen empaquetado.

En EC2, es posible que desee cambiar “swappath” a disco / mnt o high-iops.

Puede usar la siguiente secuencia de comandos para agregar swap en Amazon Linux.

https://github.com/chetankapoor/swap

Descargue el script usando wget:

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

A continuación, ejecute el script con el siguiente formato:

 sh swap.sh 2G 

Para obtener un tutorial completo, puede visitar:

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