Me preguntaba desde que escuché que el intercambio se usa cuando estás fuera o RAM y cambiar demasiado es malo, ya que tengo mucha RAM (8 GB) ...
¿Qué pasa si no creo una partición de intercambio?
Además, ¿lo necesito para la hibernación o no es imprescindible?
linux
swap
swappiness
Mihai Bratulescu
fuente
fuente
Respuestas:
Los sistemas operativos modernos requieren un espacio de intercambio para hacer un uso eficiente de la RAM. Incluso si su sistema tiene mucha RAM, el desperdicio de RAM da como resultado una memoria caché de búfer más pequeña, lo que significa un aumento de E / S de disco. Entonces, no importa cuánta RAM tenga, aún desea que el sistema lo use de manera eficiente. Usarlo de manera eficiente significa sacar cosas de la RAM a las que es extremadamente difícil acceder.
Cuando inicia un sistema típico, se inicia una gran cantidad de servicios. Los programas ejecutan el código de inicialización y modifican las asignaciones de memoria privada en el proceso. Varios de estos servicios nunca volverán a ejecutarse. Muchos de ellos no funcionarán durante horas. Sin intercambio, el sistema operativo no tiene más remedio que mantener las asignaciones de memoria privada modificadas asociadas con esos servicios en la RAM para siempre. Esa es la RAM que nunca se puede usar como caché de disco.
Por lo tanto, desea intercambiar si lo necesita o no.
fuente
He estado ejecutando un sistema de escritorio sin ningún intercambio durante un par de años, ¡y me ha ido genial! Hay algunos comportamientos que son diferentes; algunos de estos son ventajosos y otros podrían hacerle daño. Todo depende de lo que estés haciendo.
Una diferencia importante es cómo se comporta el sistema cuando se agota la memoria:
Si no hay una partición de intercambio, el asesino OOM se ejecuta inmediatamente. Si tiene un programa que pierde memoria, es probable que sea el que se mate. Eso sucede y recuperas el sistema casi al instante.
Si no es una partición de intercambio, el núcleo empuja el contenido de la memoria en el intercambio. El proceso errante puede continuar asignando memoria. Esto sigue sucediendo hasta que se agote el intercambio, que podría ser de diez minutos a una hora si tiene una gran partición de intercambio. Mientras hace esto, su sistema se ralentiza a un rastreo. Se hace imposible abrir una terminal y matar el proceso. Por lo general, desconecto el cable de alimentación cuando esto sucede.
Por lo tanto, dado que voy a perder mis datos de todos modos cuando el OOM del sistema, prefiero la primera opción para al menos tener una (alta) posibilidad de recuperación.
fuente
El intercambio es necesario para la hibernación, de lo contrario, puede sobrevivir sin que esté bien.
fuente
Es un error común pensar que tener un área de intercambio afecta negativamente el rendimiento. Lo que afecta gravemente el rendimiento es no tener suficiente RAM. El área de intercambio per se no tiene ningún efecto negativo en el rendimiento a menos que no le importe la fiabilidad. Puede tener un impacto positivo en el rendimiento incluso si cree que tiene suficiente RAM (y no se informa de falta de RAM).
Hay esencialmente tres casos a considerar:
1: Hay suficiente RAM para las necesidades internas del kernel, para que todas sus aplicaciones tengan su conjunto de páginas de trabajo en RAM y aún tengan RAM "libre" para que la memoria caché del búfer almacene la mayoría de los datos activos del sistema de archivos.
2: igual que el anterior, excepto que no tiene suficiente RAM libre para que la memoria caché del búfer sea completamente eficiente.
3: No hay suficiente RAM para incluso almacenar las páginas usadas de sus aplicaciones.
En el caso 1, que debería ser la norma para una máquina de producción, tener un área de intercambio o no no cambia nada (al menos en sistemas operativos basados en Linux y otros sistemas operativos que comprometen demasiado la memoria).
En el caso 2, tener un área de intercambio podría mejorar el rendimiento general al permitir que el sistema pase páginas de uso muy poco frecuente y luego permita que el caché del búfer desempeñe mejor su papel.
En el caso 3, tener un área de intercambio permite que la aplicación siga ejecutándose a expensas de una degradación del rendimiento debido a la paginación. Por otro lado, la falta de un área de intercambio (o una lo suficientemente grande) hará que las aplicaciones se bloqueen al azar. Además, dependiendo de la configuración del sistema operativo, el asesino de OOM también podría decidir eliminar la mayoría de las aplicaciones que requieren mucha memoria si hay una fuerte demanda de RAM sin siquiera darles la oportunidad de guardar sus (sus) datos críticos.
Este último caso es uno con el que tienes que elegir. Ciertamente, hay algunos casos de uso en los que la eliminación de procesos es la opción preferida, como los sistemas donde el tiempo de respuesta es crucial y donde perder una transacción / proceso no es gran cosa.
Sin embargo, tiendo a creer en la mayoría de las situaciones, es mejor permitir que el usuario / administrador note la escasez de RAM y actúe en consecuencia sin correr el riesgo de perder datos.
fuente
Si no desea utilizar una partición de intercambio, puede usar un archivo de intercambio: una imagen del sistema de archivos almacenada en un archivo normal y utilizada como su espacio de intercambio.
Los siguientes artículos explican cómo hacerlo en detalle:
fuente
Es un poco peligroso, pero PUEDES correr sin un espacio de intercambio. Pero si finalmente excede la cantidad de memoria que tiene, su sistema se bloqueará casi inmediatamente sin previo aviso.
Básicamente, el intercambio es extenso pero mucho más lento para tu memoria. Si lo supera, comenzará a intercambiar, realmente le quitará la vida a su sistema ... SIN EMBARGO, al eliminar los procesos errantes, aún puede salvar su sistema.
Algunos programas insisten en asignar (pero no usar) espacio de intercambio, algunos de estos son programas de bases de datos, si mal no recuerdo. Nuevamente, al no tener espacio de intercambio, puede limitar los programas que se pueden ejecutar.
Finalmente, mira SWAP es BARATO en el hecho de que no tienes que hacer una copia de seguridad del área. (Espero que sea uno de estos excelentes administradores de sistemas que respaldan sus sistemas).
Así que créalo.
Mi regla de oro solía ser 2 * tamaño de memoria ..... pero ahora estoy bien en muchos casos con 1 * tamaño de memoria pero generalmente uso 1.5 * (tamaño de memoria). No tiene que crear esta gran cantidad, pero yo lo haría ... especialmente si hay algún tipo de trabajo de producción que esté haciendo.
Ah, sí, y para la hibernación, se requiere el intercambio para mantener una imagen total de la memoria. Y, por lo tanto, el tamaño si está considerando la h8ibernation debe ser AL MENOS (1 * tamaño de memoria) + 100 MB ... los 100 MB son para la posible sobrecarga necesaria en el proceso.
fuente
El intercambio de Linux parece tener un requisito bastante difícil tan pronto como hay presión de memoria. El síntoma es que si los procesos activos utilizan casi toda la RAM, el sistema se detiene y el disco duro se está volviendo loco.
¿Por qué?
Las páginas sin un archivo de respaldo (generalmente de la asignación de memoria dinámica) no se pueden expulsar de la RAM cuando no hay intercambio. El núcleo recurre a páginas con un archivo de respaldo, incluso si realmente se necesitan pronto nuevamente, i. mi. destrozando incluso sin intercambio!
Para más detalles sobre este sutil problema, vea esta publicación de blog.
Conclusión : siempre tenga un intercambio.
Y para el tamaño como una guía aproximada, use algo entre 4 y 8 GB, incluso para sistemas con mucha RAM, suponiendo que no hiberne. Para obtener más detalles, consulte la documentación de Red Hat sobre el espacio de intercambio .
fuente