¿Por qué no quiero habilitar el intercambio?

Hace poco tuve un problema en el que un process deshonesto causó que algunas instancias de ec2 se quedaran sin memory y fallaran. Probablemente no debería haber sido un problema, excepto que estaba utilizando t2.small instancias que son bastante memory limitada y se quedó sin memory antes de que alguien podría responder a nuestras alertas de supervisión.

Obviamente, lo mejor es evitar el uso de swap si es posible, pero si tuviera swap habilitado mis instancias probablemente habría permanecido en línea aunque con un performance degradado.

Dado que el espacio del disco duro suele ser abundante, parece una buena idea para habilitar el intercambio, incluso si sólo es necesario en circunstancias excepcionales.

De forma pnetworkingeterminada, OpsWorks sólo habilita el intercambio para instancias micro, no para instancias pequeñas. ¿Por qué serían tan conservadores en la habilitación de intercambio, hay una razón por la que podría no querer habilitar el intercambio si no lo necesito para el funcionamiento normal?

3 Solutions collect form web for “¿Por qué no quiero habilitar el intercambio?”

Creo que la key es que usted necesita saber qué memory su process va a necesitar. Si utiliza EC2, significa que ha elegido un tamaño de instancia que cubrirá alguna carga de trabajo; a menudo he visto que la carga de trabajo es sólo un process / service. Añadir un montón de swap es barato, pero usted necesita saber cuándo / por qué está utilizando ese intercambio. Con demasiada frecuencia veo aquí respuestas que dicen; "Añadir intercambio en el caso de que algunos processs inactivos están comiendo un poco de RAM", que tiene sentido para el escritorio, pero en su instancia de EC2, usted debe saber las características de ejecución de su process (es) – esto es especialmente el caso cuando ' re desarrollo de una aplicación – saber cómo se ejecuta normalmente mediante la desactivación de intercambio durante el desarrollo, a continuación, agregar swap y boost swappiness a un alto valor (90 +) cuando en la producción.

Otra forma de verlo es que en un entorno de server y especialmente en la nube, donde puede adaptar su instancia a su carga de trabajo, ¿de verdad desea su intercambio de processs? ¿Está bien para el performance? Usted no va a ser un campista feliz cuando se obtiene una máquina de un tamaño de 2 GB de RAM que ejecuta un process que necesitaba 3 GB para ejecutar cómodamente páginas de intercambio continuo en el disco.

¿Se quedó sin memory física o se quedó sin tienda de respaldo? Si este último, swap habría dejado que su sistema siga funcionando normalmente, incluso sin ningún dato que se le escribe!

"¿Hay alguna razón por la que no quiera habilitar el intercambio si no lo necesito para una operación normal?"

Sí. Tener swap disponible es necesario para el sistema operativo para hacer un uso eficiente de la RAM física.

Por ejemplo, supongamos que un process crea una asignación privada, grabable de un file de 256 MB. Si no hay swap, el sistema operativo tiene que reservar 256 MB de RAM física para esta asignación, aunque ninguna de esa RAM sea necesaria porque la asignación nunca se modifica en el caso de que el process decida modificar cada byte de esa asignación.

Esencialmente, sin intercambio, cada página de escritura limpia no respaldada por un file significa una página de memory RAM física que no puede contener datos modificados, incluso si esas páginas permanecen descartables durante toda su vida útil.

Realmente, realmente desea swap disponible incluso si no lo necesita.

YMMV, pero para cargas de trabajo interactivas, mi experiencia ha sido que si alguna vez empiezas a usar el file de la página, el performance general del sistema se detiene de todos modos, y normalmente es causado por algún process desenfrenado, así que preferiría que el progtwig se bloquee (fuera de memory) que matar el performance de todos mis otros progtwigs. Por lo tanto, he configurado mi casa compartida máquina familiar sin file de página y un montón de RAM adicional. Las quejas de mi esposa sobre mal desempeño bajaron significativamente. Cuando más tarde agregé un SSD a la mezcla el año pasado, las cosas se pusieron aún mejores.

  • ¿Cómo puedo crear una partición de intercambio en Amazon EC2 con almacenamiento efímero?
  • ¿Qué tan grande debe ser la partición de intercambio?
  • He instalado Lighttpd en mi VPS, todavía el server web se basa en el intercambio
  • ¿Por qué el host intercambia las máquinas virtuales cuando hay 16 GB de caching de búfer y swappiness = 0?
  • ¿Qué tamaño debe tener la partición de intercambio?
  • Intercambiar con una enorme cantidad de RAM disponible
  • En un sistema Linux virtual donde el almacenamiento está en la networking, ¿cuál es el punto del file de intercambio?
  • ¿Utilizando tmpfs + una partición swap muy grande para / tmp en lugar de un sistema de files normal?
  • ¿Dónde debe circular mi swap partición / s cuando se utiliza RAID1 de software? ¿Actuación? LVM?
  • ¿Debo desactivar por completo el intercambio para el servidor web de linux?
  • ¿Dónde debe circular mi swap partición / s cuando se utiliza el software RAID1? ¿Actuación? LVM?
  • ¿Cómo conseguir que el asesino de OOM de Linux no destruya mi process?
  • Socket e intercambiar espacio
  • El linux y los temas del servidor de Windows, como ubuntu, centos, apache, nginx, debian y consejos de red.