¿Todavía necesitamos particiones de intercambio en los servidores?

37

He leído esta pregunta , pero se hizo en el contexto de servidores, no de computadoras de escritorio o portátiles.

Si se instala una buena cantidad de RAM en una computadora portátil, digamos 8 GB, ¿todavía necesitamos un espacio de intercambio?

cochecito
fuente

Respuestas:

33

Existe una idea errónea común de que tener un espacio de intercambio está afectando negativamente el rendimiento del sistema. Esto es incorrecto. Siempre que tenga suficiente RAM, tener un área de intercambio sea cual sea su tamaño no perjudica en absoluto el rendimiento. Lo que afecta el rendimiento es tener poca RAM y usar el espacio de intercambio de manera efectiva.

  1. Si no tiene espacio de intercambio y se queda sin RAM, el núcleo seleccionará uno o más procesos que considere buenos candidatos (aunque podría darle algunas pistas ) y los matará.

  2. Si tiene un espacio de intercambio y no tiene RAM, el núcleo seleccionará las páginas de memoria menos usadas y las colocará en el área de intercambio para liberar RAM. Esto ralentizará el sistema, pero sus aplicaciones no se verán afectadas de otra manera.

Siempre prefiero el caso 2. ya que me siento incómodo al perder partes o todo mi trabajo porque el núcleo piensa que vale la pena matar mis aplicaciones. Además, con el tamaño actual de un disco promedio en el rango de TB, reservar un pequeño porcentaje para el intercambio generalmente no es un problema.

jlliagre
fuente
¿Es tu primer punto realmente cierto? ¿El núcleo matará los procesos en ejecución para liberar RAM? ¿Por qué el kernel no usaría espacio en disco en lugar de matar procesos en vivo?
Donato
44
@Donato Sí, mi primer punto es cierto. Si no hay espacio de intercambio configurado (es decir, disco), el núcleo no tiene la opción de usar espacio en disco para liberar RAM.
jlliagre
¿Y qué pasa cuando termino el espacio de intercambio? ¿Retroceder en el caso 1?
Zac
@Zac Sí, a menos que realmente haya deshabilitado el exceso de compromiso de memoria, en cuyo caso se dañará el primer proceso que no asigne memoria. Tenga en cuenta que si tiene un área de espacio de intercambio (significativa) configurada y utiliza la mayor parte, probablemente tendrá serios problemas de rendimiento en primer lugar.
jlliagre
1
@Zac Si agota su espacio de intercambio, está esencialmente en la misma situación que no tiene espacio de intercambio en primer lugar. Un proceso o más morirán. Pueden ser elegidos por el asesino oom o simplemente estar en el lugar equivocado y en el momento equivocado. Normalmente, un sistema de producción adecuadamente monitoreado debería haber activado una alerta y luego una reacción administrativa antes de que ocurra el agotamiento del intercambio.
jlliagre
9

Si tiene una RAM de 3GB o superior, Ubuntu NO UTILIZARÁ automáticamente el espacio de intercambio, ya que es más que suficiente para el sistema operativo.

¿Ahora realmente necesitas una partición de intercambio?

La respuesta en mi opinión es sí. Porque no sabes qué vas a instalar o hacer en el futuro que pueda requerir la necesidad de espacio de intercambio. Además, si planea utilizar la hibernación, es posible que desee tener algo de espacio de intercambio. En realidad, no tiene que tener una partición de intercambio, pero se recomienda en caso de que use tanta memoria en el funcionamiento normal.

Para obtener más información sobre la necesidad o no de intercambio, consulte Preguntas frecuentes de intercambio de Ubuntu o Requisitos de intercambio

Mitch
fuente
¿Tiene un enlace que confirma su primera declaración?
jlliagre
@jlliagre Echa un vistazo a mygeekopinions.blogspot.com/2011/03/… , que lleva a askubuntu.com/questions/23676/…
Mitch
1
La declaración del blog cita erróneamente la respuesta askunbutu. No hay evidencia de que user4124 sea un desarrollador de Ubuntu. "(normalmente) no tendrá uso" es bastante diferente de "se deshabilitará automáticamente". En realidad, Ubuntu nunca deshabilita el intercambio y lo usará si es necesario, incluso si tiene 8 GB de RAM o más.
jlliagre
@jlliagre Lo que eso significa es que el espacio de intercambio está allí, pero no se usa. Cuando instalé Xubuntu 14.04, creó un intercambio de 16GB, y nunca se ha usado todavía. ver imagen
Mitch
1
Me alegra que haya corregido su respuesta. "No usar" definitivamente no es lo mismo que "deshabilitar". Ubuntu no deshabilita el intercambio y lo usará si es necesario, independientemente de su tamaño.
jlliagre
4

Durante los últimos 6 años más o menos, he usado sistemas de escritorio con al menos 8 GB de RAM. No recuerdo un caso en el que el sistema intercambió memoria bajo un uso normal, y monitorizo ​​el uso de recursos con bastante frecuencia con htop. Ni siquiera en los casos en que ejecuté 4 máquinas virtuales (servidores) simultáneamente para fines de desarrollo se produjo el intercambio.

Dicho esto, si las aplicaciones que está ejecutando requieren mucha memoria (por ejemplo, edición de video, edición de imágenes, manipulación de tablas de bases de datos grandes, etc.) puede enfrentar una situación en la que su sistema podría quedarse sin memoria. En ese caso, puede ser deseable tener un espacio de intercambio. Piense en ello como una red de seguridad de último recurso. Y teniendo en cuenta la capacidad de varios terrabytes de los sistemas actuales, ¿cuánto valen un par de gigabytes en una partición de intercambio? Mejor prevenir que curar :-)

hmayag
fuente
2

Tener espacio de intercambio siempre es algo bueno.

Aquí estoy citando la Guía de estudio de certificación RHCSA / RHCE de Michael Jang

Espacio de intercambio de Linux

Dicho espacio se usa para extender la cantidad de RAM efectiva en un sistema, como memoria virtual para los programas que se ejecutan actualmente. Pero no puede simplemente comprar RAM adicional y eliminar el espacio de intercambio. Linux mueve programas y datos usados ​​con poca frecuencia para intercambiar espacio incluso si tiene gigabytes de RAM.

Para sistemas de hasta 2 GB, el tamaño de espacio de intercambio predeterminado es el doble de la cantidad de RAM instalada. Por encima de 2 GB, es la cantidad de RAM + 2 GB. Pero esas no son reglas "duras y rápidas". Las estaciones de trabajo con varios GB de RAM con frecuencia usan muy poco espacio de intercambio ... pero se puede usar con más frecuencia en sistemas que no se reinician durante meses o tienen una gran demanda de ciertos servicios.

Gayan Weerakutti
fuente
1
"Linux mueve programas y datos usados ​​con poca frecuencia para intercambiar espacio incluso si tiene gigabytes de RAM". Supongo que aquí estamos hablando de código y datos cargados en la memoria. En el caso de que tenga 8 GB de RAM y solo esté ejecutando aplicaciones normales, ¿por qué demonios se paginaría cualquier página de código o datos para intercambiar?
Tarik
1

Depende de lo que esté ejecutando en su sistema.

Si está creando contenido, probablemente sea una buena idea tener todavía espacio de intercambio asignado, por lo que si se queda sin RAM, sus procesos se ralentizarán en lugar de ser eliminados y potencialmente perder el trabajo.

Si su máquina solo está ejecutando programas, entonces no necesita ni desea espacio de intercambio. Diseño y construyo muchos sistemas de visualización tipo kiosco que se ajustan exactamente a este uso. Prefiero que un proceso muera repentinamente que ser lento, porque entonces puedo detectar esa condición y corregirla.

Eric Sokolowsky
fuente
1

Si alguna vez necesita intercambio o más espacio de intercambio, puede crear archivos de intercambio en su sistema de archivos. Por supuesto, no admitirán la hibernación, pero es un enfoque razonable para una computadora portátil con unidad SSD y mucha RAM.

Grzegorz Żur
fuente