amazon web services - ¿Cómo agregar swap a una instancia de EC2?
amazon-web-services amazon-ec2 (9)
Después de aplicar los pasos mencionados por ajtrichards, puede verificar si su instancia de nivel libre de 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
Actualmente estoy ejecutando una micro instancia ec2 y he encontrado que la instancia a veces se queda sin memoria.
Aparte de usar un tamaño de instancia mayor, ¿qué más se puede hacer?
El intercambio debe tener lugar en el disco de almacenamiento de instancia (efímero) y no en un dispositivo EBS. El intercambio causará una gran cantidad de IO y aumentará el costo en EBS. EBS también es más lento que el Almacén de instancias y el Almacén de instancias viene gratis con ciertos tipos de Instancias EC2 .
Por lo general, se monta en / mnt pero si no se ejecuta
sudo mount /dev/xvda2 /mnt
Para luego 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 swap.
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 swap
sudo swapon -a
Podemos añadir espacio de intercambio en cualquier servidor.
crear 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 blocksize y count se refiere al tamaño en MB o GB
podemos usar al revés
Después de la creación cambiar el permiso de archivo:
#chmod 600 /swapfile
Luego hace el archivo:
#mkswap /swapfile
Luego habilita el archivo de intercambio con el comando swapon:
#swapon /swapfile
Compruebe con comando libre si el intercambio está habilitado o no:
#free -h
#swapon -s
Prueba swapspace http://pqxx.org/development/swapspace/
La mayoría de las distribuciones lo tienen empaquetado.
En EC2 es posible que desee cambiar "swappath" a / mnt o disco high-iops.
Puede crear espacio de intercambio utilizando los siguientes pasos. Aquí estamos creando intercambio en /home/
dd if=/dev/zero of=/home/swapfile1 bs=1024 count=8388608
Aquí se cuenta el kilobyte de espacio de swap.mkswap /home/swapfile1
vi /etc/fstab
hacer entrada:
/home/swapfile1 swap swap defaults 0 0
correr:
swapon -a
Puede usar el siguiente script para agregar swap en Amazon Linux.
https://github.com/chetankapoor/swap
Descarga 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 un tutorial completo puedes visitar:
Puedes agregar un swap de 1 GB a tu 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 de reiniciar, 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 almacenamiento de instancia o efímero disponible para usted. Por lo tanto, solo necesita crear su swap en EBS
que dependiendo de 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 pagar los costos de EBS.
Más información: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html hay una tabla que muestra la cantidad de almacenamiento efímero que obtiene para cada tipo de instancia.
Una solución para este problema es agregar espacio de swap
(es decir, paging
) a la instancia.
La paginación funciona creando un área en su disco duro y usándola como memoria adicional, esta memoria es mucho más lenta que la memoria normal, sin embargo, hay mucho más disponible.
Para agregar este espacio extra 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 de reiniciar, agregue esta línea a / etc / fstab:
/var/swap.1 swap swap defaults 0 0