¿Cómo debo decidir qué tamaño hacer mi intercambio en una nueva máquina Linux (Debian) con 2-4 GB de RAM? ¿Realmente necesito espacio de intercambio?
¿Cómo debo decidir qué tamaño hacer mi intercambio en una nueva máquina Linux (Debian) con 2-4 GB de RAM? ¿Realmente necesito espacio de intercambio?
Respuestas:
Hay muchas maneras de calcular cuánto uso de intercambio en una máquina. Las sugerencias comunes utilizan fórmulas basadas en RAM, como 2 x RAM, 1.5 x RAM, 1 x RAM, .75 x RAM y .5 x RAM. Muchas veces las fórmulas varían según la cantidad de RAM (por lo que una caja con 1 GB de RAM podría usar 2 x intercambio de RAM (2 GB), mientras que una caja con 16 GB de RAM podría usar .5 x intercambio de RAM (8 GB).
Otra cosa a considerar es para qué se usará la caja. Si va a tener una gran cantidad de procesos que se ejecutan simultáneamente en la caja, pero un número significativo de ellos estará inactivo por períodos de tiempo, entonces agregar intercambio adicional tiene sentido. Si va a ejecutar una pequeña cantidad de procesos críticos, entonces tiene sentido agregar un intercambio adicional (esto puede parecer contrario a la intuición, pero lo explicaré en un minuto). Si está ejecutando una caja como escritorio, entonces tiene sentido agregar un intercambio adicional.
En cuanto a si debe incluir el intercambio, sí, debería. Siempre debe incluir espacio de intercambio a menos que realmente sepa lo que está haciendo y realmente tenga una buena razón para ello.
Vea, la forma en que funciona el kernel de Linux, el intercambio no solo se usa cuando ha agotado toda la memoria física. El kernel de Linux tomará aplicaciones que no estén activas (inactivas) y después de un período de tiempo, moverá la aplicación para intercambiarla desde la memoria real. El resultado es que cuando necesite esa aplicación, habrá un retraso momentáneo (generalmente solo un segundo o dos) mientras la memoria de la aplicación se vuelve a leer del intercambio a la RAM. Y esto suele ser algo bueno.
Esto le permite poner las aplicaciones inactivas en "suspensión", dando a sus aplicaciones activas acceso a RAM adicional. Además, Linux usará cualquier RAM disponible (no asignada) en una máquina como caché de disco, haciendo que la mayor parte de la actividad del disco (lenta) sea más rápida y más receptiva. Intercambiar procesos inactivos le proporciona más caché de disco y hace que su máquina sea más rápida en general.
Por último, seamos sinceros, el espacio en disco es barato. Muy barato. Realmente no hay una buena razón para no deslizar una porción (relativamente) pequeña de espacio para el intercambio. Si estuviera ejecutando con 2GB - 4GB de RAM en una máquina, probablemente configuraría mi espacio de intercambio para que sea al menos igual a la RAM. Si fuera menos de 2GB de RAM, entonces todavía iría con al menos 2GB de intercambio.
ACTUALIZACIÓN: Como mencioné un excelente comentario (y olvidé incluirlo), si está ejecutando una computadora portátil o una computadora de escritorio que tal vez desee poner en modo 'hibernar' (Suspender a disco), siempre querrá al menos lo mismo intercambia como tengas memoria. El espacio de intercambio se utilizará para almacenar el contenido de la RAM en la computadora mientras "duerme".
Red Hat recomienda la siguiente fórmula para servidores con mucha memoria ram:
if MEM < 2GB then SWAP = MEM*2 else SWAP = MEM+2GB
Si su sistema tiene 1 GB de RAM, su intercambio sería de 2 GB, para 16 GB sería de 18 GB.
Respuesta tardía, y creo que esto se cubrió más o menos en la respuesta seleccionada, pero hay información buena y fácilmente digerible en la respuesta proporcionada por @ssapkota aquí (copia / pegada a continuación).
Aquí hay una muy buena recomendación de RedHat: espacio de intercambio de sistema recomendado
Un extracto del mismo enlace:
En años anteriores, la cantidad recomendada de espacio de intercambio aumentó linealmente con la cantidad de RAM en el sistema. Pero debido a que la cantidad de memoria en los sistemas modernos ha aumentado a cientos de gigabytes, ahora se reconoce que la cantidad de espacio de intercambio que necesita un sistema es una función de la carga de trabajo de memoria que se ejecuta en ese sistema. Sin embargo, dado que el espacio de intercambio generalmente se designa en el momento de la instalación, y que puede ser difícil determinar de antemano la carga de trabajo de memoria de un sistema , recomendamos determinar el intercambio del sistema utilizando la siguiente tabla.
Cuadro actual (a diciembre de 2012):
Amount of RAM in the system Recommended swap space Recommended swap space
if allowing for hibernation
--------------------------- ---------------------------- ---------------------------
2GB of RAM or less 2 times the amount of RAM 3 times the amount of RAM
2GB to 8GB of RAM Equal to the amount of RAM 2 times the amount of RAM
8GB to 64GB of RAM 0.5 times the amount of RAM 1.5 times the amount of RAM
64GB of RAM or more 4GB of swap space No extra space needed
Mesa original:
Amount of RAM in the System Recommended Amount of Swap Space
4GB of RAM or less a minimum of 2GB of swap space
4GB to 16GB of RAM a minimum of 4GB of swap space
16GB to 64GB of RAM a minimum of 8GB of swap space
64GB to 256GB of RAM a minimum of 16GB of swap space
256GB to 512GB of RAM a minimum of 32GB of swap space
Depende bastante de lo que estés haciendo con él. Con la carga de trabajo adecuada, en realidad no necesita ningún espacio de intercambio, ya sea que tenga 16 MB o 16384 MB de RAM; de hecho, la mayoría de los dispositivos Linux integrados se ejecutan sin ninguno (¿a qué cambiarían?)
Teniendo en cuenta los precios de RAM, probablemente no va a utilizar el intercambio para el cálculo activo. Entonces, ¿qué queda?
(2) y (3) dependen en gran medida de la carga de trabajo. En mis escritorios, puedo usar fácilmente 4GB + en (2), dejando vims, xterms, etc. ejecutándose en otros escritorios.
En la mayoría de los servidores que ejecuto, casi nunca hay nada intercambiado y 1–2GB de intercambio (independientemente de la cantidad de RAM) parece estar bien.
madvise
, pero eso no fallará ... ese error habla de quedarse sin memoria durante la recolección de basura. Agregar intercambio evita eso, por supuesto, pero también lo haría agregar RAM. ¿Quizás es debido a 32 bits con PAE?
Xms
y Xmx
no establece los mismos valores, puede morderlo gravemente: nos causó problemas importantes durante más de dos semanas hasta que finalmente lo rastreamos
Bueno, depende de qué servicios y aplicaciones planee ejecutar. Puede ver el uso de su memoria con free -m y ajustar su partición de intercambio en consecuencia con el tiempo.
Aquí hay una discusión interesante sobre el tema. Personalmente (y después de leer esa discusión) todavía dejaría alrededor de 1 GB para el intercambio.
No puedo hablar con Debian directamente, pero sé que cuando superas los 2 GB de RAM, la ecuación original de 2xRAM cambia, generalmente a 1xRAM. Creo que una vez que llegue a 16 GB de RAM, la sugerencia vuelve a bajar a .75xRAM.
Por supuesto, esto es cierto para Solaris, y en realidad es la métrica utilizada para las instalaciones de Oracle, por lo que YMMV depende de las aplicaciones que vaya a ejecutar allí.
El espacio de intercambio puede servir como "relleno" cuando de otro modo se quedaría sin memoria inmediatamente.
Cuando un proceso consume toda la RAM disponible y algo más, la máquina funcionará muy lentamente, pero generalmente podrá recuperarse. También será más fácil ver qué proceso está causando el problema.
A lo largo de los años, he seguido la regla de que para las máquinas con Windows tienes tanto intercambio como RAM ... En Novell, sintonizaríamos más si tuviéramos más impresoras ... Para Linux, la regla y la práctica para mí han sido 1GB intercambie por cada 2GB de RAM que tenga. Y lo coloca en la parte frontal del disco para que se acceda más rápido.
si es un servidor LAMP, la regla 1/2 está vigente.
El millaje variará según la aplicación y el uso de la GUI.
Creo un intercambio de 1GB y compro más RAM en el segundo en que se usa. Realmente no necesitas cambiar en las computadoras modernas, la RAM es muy barata.
¿Para qué estás usando el sistema? Personalmente no uso ningún intercambio. Si algo usa un token de 512 MB o algo así solo las cosas pueden ponerse en el disco si es residente pero está inactivo por largos períodos.
Solo uso un pequeño intercambio de tokens (generalmente 256 MB, pero incluso he hecho 64 MB) porque la configuración de un sistema con intercambio cero necesita una configuración especial.
El espacio en disco es barato, pero muy lento. Tan pronto como el sistema comienza a intercambiarse, el rendimiento es cero. Y la RAM ya no es tan costosa.
Confía en mí, compra un procesador un poco más lento y compra más RAM. 2.8 GHz en lugar de 3.0 GHz le ahorrará suficiente dinero para comprar otros 2 GB de RAM, al menos.