Comencé un par de servidores en EC2 y no tienen intercambio.
¿Estoy haciendo algo mal o es que las máquinas simplemente no tienen ninguna?
linux
ubuntu
amazon-ec2
swap
rafamvc
fuente
fuente
Respuestas:
Tienes razón, las imágenes de Ubuntu EC2 EBS no vienen con espacio de intercambio configurado ( al menos para 11.04 ). Las imágenes de tipo de instancia "regular" tienen una partición de intercambio, aunque solo 896 MB en la que probé.
Si algún proceso explota y no tiene espacio de intercambio, su servidor podría detenerse por un buen tiempo antes de que el asesino OOM entre en acción, mientras que con el intercambio, simplemente se vuelve lento. Por esa razón, siempre me gusta tener espacio de intercambio, incluso con suficiente RAM. Aquí están tus opciones:
Cree un volumen EBS (2-4 veces el tamaño de su RAM), conéctelo a su instancia (me gusta llamarlo / dev / xvdm para "memoria")
sudo mkswap /dev/xvdm
, agréguelo a fstabsudo swapon -a
, y listo. . He hecho esto antes y funciona bien, pero probablemente sea un poco más lento que la tienda de instancias porque va a través de la red.O quizás pueda volver a particionar su disco para agregar una partición de intercambio, aunque esto puede requerir la creación de una nueva AMI. No he podido hacer esto en una instancia en ejecución, porque no puedo desmontar el sistema de archivos raíz y ni siquiera tengo acceso al dispositivo de disco (/ dev / xvda), solo a la partición (xvda1).
O puede crear un archivo de intercambio. Esta es mi solución preferida en este momento.
Hecho. :) Sé que mucha gente se siente mal por usar archivos en lugar de particiones, pero ciertamente funciona lo suficientemente bien como espacio de intercambio de emergencia.
fuente
La mejor ubicación para intercambiar en mi humilde opinión es la tienda de instancias. ¿Por qué? AWS no le cobra por E / S en la tienda de instancias. Además, la tienda de instancias es más eficiente que EBS en muchos casos. Solo asegúrese de tener un script que recrea el archivo de intercambio en caso de que detenga la instancia. Los reinicios están bien. ¿Por qué oh por qué no está allí por defecto?
Busquemos la tienda de instancias.
¡Hurra, 160.1GB gratis! Ponga su intercambio allí y olvide los excesos de $ 100 por servidor cuando su intercambio basado en EBS se enjambre por error. Desafortunada experiencia hablando aquí.
Aparentemente en algunos casos no ves la tienda de instancias.
fuente
Nota : Amazon ha cambiado su política de precios y no cobra por las solicitudes de E / S a partir de mediados de 2016. La respuesta se mantiene aquí por razones históricas, pero no hay implicaciones de costo de usar (o no usar) el intercambio en instancias respaldadas por EBS EC2.
Esto es por diseño. El intercambio está desactivado de forma predeterminada en las instancias respaldadas por EC2 EBS, para evitar costos impredecibles.
Si tiene una aplicación que necesita mucha memoria y que no funciona (digamos, en una instancia pequeña o pequeña), puede generar una gran cantidad de solicitudes de E / S en su volumen EBS.
Amazon cobra $ 0.10 por 1 millón de solicitudes de E / S (consulte http://aws.amazon.com/pricing/ebs/ ).En condiciones normales no debe preocuparse por eso; por lo general, el costo de las solicitudes de E / S, incluso en casos más pequeños, unos pocos dólares, si es así. Entonces, si sabe que tiene una instancia del tamaño adecuado y que el intercambio se usará con poca frecuencia, continúe y habilítelo. Pero ten cuidado con las pequeñas instancias.
Si habilita el intercambio, es posible que desee vigilar los informes de uso. Opcionalmente, también puede configurar una Alerta de facturación yendo al Panel de control de CloudWatch y creando una nueva Alarma por el monto total facturado. De esta forma, se le notificará de inmediato, algo extraño está sucediendo con sus instancias.
fuente
Verifique el
/etc/fstab
archivo, probablemente se configuraron sin cambiar la imagen que está utilizando. Creo que algunas personas corren sin intercambio de servidores, ya que esperan nunca usar más que la memoria total; el intercambio hace que todo sea muy lento.Sin embargo, siempre estoy paranoico sobre algún proceso que se dispara en la memoria, por lo que creo que sería prudente de su parte simplemente configurar una unidad de intercambio y recrear una imagen de la instancia ec2 en ejecución.
fuente
Una solución simple para ejecutar
swap
enEC2
imágenes es ejecutarswap
comprimido conlz4
inram
withzram-init
.systemd
&openrc
.Esta solución no tomar
ram
distancia de lahost
:fuente
zswap
que proporciona memoria caché RAM comprimida sobre un archivo / disco de intercambio normal: wiki.archlinux.org/index.php/zswap . Consulte cnx-software.com/2018/05/14/… para obtener más información sobre zram.