it-swarm-es.com

¿Cuánto espacio SWAP en un sistema de 2-4GB?

¿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?

53
C. Ross

Hay muchas maneras de calcular cuánto uso de intercambio en una máquina. Las sugerencias comunes usan 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 el cantidad de RAM (entonces una caja con 1GB de RAM podría usar 2 x RAM swap (2GB), mientras que un la caja con 16 GB de RAM podría usar .5 x RAM swap (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 una gran cantidad de ellos estarán inactivos 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 elemento disponible (sin asignar) RAM en una máquina como caché de disco, lo que hace que la mayor parte de la actividad del disco (lenta) sea más rápida y más receptiva. El intercambio de procesos inactivos le proporciona más caché de disco y hace que su máquina en general más rápido.

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 2 GB 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), entonces usted siempre quiere al menos tanto intercambio como memoria. El espacio de intercambio se usará para almacenar el contenido de RAM en la computadora mientras 'duerme'.

54

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.

17
PEra

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/pegado a continuación).

Aquí hay una muy buena recomendación de RedHat: Espacio de intercambio del sistema recomendado

Un extracto del mismo enlace:

En años pasados, 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 de 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 
12
ubiquibacon

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 RAM), probablemente no va a utilizar el intercambio para el cálculo activo. Entonces, ¿qué queda?

  1. En los escritorios, el espacio de intercambio se utiliza para suspender en disco. Este espacio de intercambio debe ser alrededor de 1 × RAM, dependiendo de qué tan bien se comprima el contenido de la memoria.
  2. Permitir que las tareas inactivas se eliminen de RAM para dejar más espacio para el caché de disco
  3. Lo mismo, pero para permitir que los procesos activos lo usen en su lugar para el montón/pila

(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 RAM cantidad) parece estar bien.

8
derobert

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 un 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.

4
Ivan

El espacio de intercambio puede servir como "relleno" cuando de otro modo se quedaría sin memoria inmediatamente.

Cuando un proceso consume todo el RAM y algo más, la máquina funcionará muy lentamente, pero normalmente podrá recuperarse. También será más fácil ver qué proceso está causando el problema .

2
starblue

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 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í.

2
Milner

Siempre hago tanto intercambio (al menos) como RAM. Por si acaso quiero hibernar la máquina algún día. Puede funcionar con menos, pero tampoco podría.

El espacio en disco duro es barato en estos días, por lo tanto, no dudo en regalar espacio de intercambio.

2
Martin C.

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 1 GB intercambie por cada 2GB RAM que tenga. Y lo coloca en la parte frontal del disco para que se acceda más rápido.

  • Si es una puerta de enlace de correo/spam, uso el doble de intercambio a RAM
  • Si es un servidor *, no uso swap en absoluto
  • 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.

1
Thomas Denton

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 RAM ya no es tan caro.

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.

0
Maneesh Kasera

Creo un intercambio de 1GB y compro más RAM en el segundo que se está utilizando. Realmente no necesitas intercambiar en computadoras modernas, RAM es muy barato.

0
Adam Gibbins

¿Para qué estás usando el sistema? Personalmente no uso ningún intercambio. Si algo usa un token de 512 MB o algo así, las cosas pueden ponerse en el disco si son residentes pero están inactivas por largos períodos.

0
Mike McQuaid