Actualmente estoy ejecutando una micro instancia ec2 y he descubierto que la instancia ocasionalmente se queda sin memoria.
Además de usar un tamaño de instancia más grande, ¿qué más se puede hacer?
amazon-web-services
amazon-ec2
out-of-memory
ajtrichards
fuente
fuente
if
significa 'archivo de entrada',of
significa 'archivo de salida',bs
significa 'tamaño de bloque' ycount
es el número de bloques que desea asignar ... puede leer laman
página del comando para obtener más información: linux.die.net/man/1/ dd$> free -m
El intercambio debe realizarse en el disco de Almacenamiento de instancias (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 es gratuito con ciertos tipos de instancias EC2 .
Por lo general, se montará en / mnt, pero si no se ejecuta
Para crear un archivo de intercambio en este dispositivo, haga lo siguiente para un archivo de intercambio de 4 GB
Asegúrese de que ningún otro usuario pueda ver el archivo de intercambio
Hacer y marcar como intercambio
Agregue / Asegúrese de que lo siguiente esté en su / etc / fstab
por último habilitar el intercambio
fuente
Después de aplicar los pasos mencionados por ajtrichards, puede verificar si su instancia de nivel gratuito de Amazon está utilizando swap con este comando
resultado:
Total de intercambio: 1048572 kB
Sin intercambio: 1048572 kB
fuente
Puede agregar un intercambio de 1 GB a su instancia con estos comandos:
Para habilitarlo de manera predeterminada después de reiniciar, agregue esta línea a
/etc/fstab
:fuente
/swapfile
. Pero también podría montar otro sistema de archivos y crear el archivo de intercambio allí, por ejemplo/mnt/blah/swapfile
.Si se encuentra en
t2
los casos (t2.micro
,t2.medium
,t2.small
), no hay efímera o instancia de almacenamiento disponible para usted. Por lo tanto, debe crear su intercambio en elEBS
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 cuánto almacenamiento efímero obtienes para cada tipo de instancia.
fuente
For example, if you provision a volume with 1000 IOPS, and keep this volume for 15 days in a 30 day month, then in a Region that charges $0.10 per provisioned IOPS-month, you would be charged $50 for the IOPS that you provision ($0.10 per provisioned IOPS-month * 1000 IOPS provisioned * 15 days/30). You will be charged for the IOPS provisioned on a volume even when the volume is detached from an instance.
. Parece que AWS cobrará por las operaciones de lectura y escritura.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í el recuento es el recuento de kilobytes del espacio de intercambio
mkswap /home/swapfile1
vi /etc/fstab
hacer entrada:
/home/swapfile1 swap swap defaults 0 0
correr:
swapon -a
fuente
Podemos agregar espacio de intercambio en cualquier servidor
crear un archivo usando el comando dd
bs es blockize y count se refiere al tamaño en MB o GB
podemos usar viceversa
Después de la creación, cambie el permiso del archivo:
Luego hace el intercambio del archivo:
Luego habilite el archivo de intercambio con el comando swapon:
Compruebe con comando libre si el intercambio está habilitado o no:
fuente
El uso de la respuesta de almacenamiento de instancias de David inicialmente funcionó para mí (en un m5d.2xlarge), sin embargo, después de detener la instancia de EC2 y volver a encenderla, no pude volver a ingresar a la instancia.
Los registros de la instancia informaron: "Está en modo de emergencia. Después de iniciar sesión, escriba" journalctl -xb "para ver los registros del sistema," reinicio de systemctl "para reiniciar," predeterminado de systemctl "o" salir "para iniciar en modo predeterminado. Presione Entrar para mantenimiento"
En cambio, seguí las instrucciones de AWS en este enlace y todo funcionó perfectamente, incluso después de apagar y volver a encender la instancia.
https://aws.amazon.com/premiumsupport/knowledge-center/ec2-memory-swap-file/
sudo dd if=/dev/zero of=/swapfile bs=1G count=4
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo swapon -s
fuente
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 de alta iops.
fuente
Puede usar el siguiente script para agregar intercambio en Amazon Linux.
https://github.com/chetankapoor/swap
Descargue el script usando wget:
Luego ejecute el script con el siguiente formato:
Para un tutorial completo puede visitar:
https://installvirtual.com/shell-script-to-create-swap/
fuente