Linux: Se debe de utilizar el doble de la cantidad RAM de espacio Swap?

2 Comments

Linux y otros Unix-como sistemas operativos utilizan el tí©rmino “swap” para describir el movimiento de las paginas de memoria entre la RAM y el disco, y la región de un disco donde las páginas son almacenadas. Es común utilizar toda una partición de un disco duro para el intercambio.

Sin embargo, con el kernel de Linux 2.6, los archivos de intercambio son tan rápidos como las particiones de intercambio. Ahora bien, muchos administradores (Windows y Linux/UNIX) siguen una vieja regla de que la partición de intercambio debe ser dos veces el tamaño de la RAM del sistema.

Digamos que mis computadora tiene 64GB de RAM, debo configurar el espacio de intercambio a 128 GB?

Es realmente necesario un espacio de intercambio de 128 GB?

¿Quí© tamaño debe tener el espacio swap de Linux/UNIX?

Al principio los gestores de memoria eran muy mal diseñados, y no eran muy inteligentes. Hoy en dí­a eso ha cambiado, los administradores de memoria par aLinux y Unix son muy inteligentes.

Regla obsoleta: El tamaño del espacio swap para servidores debe de ser el doble de la memoria RAM

De acuerdo con OpenBSD FAQ:

Muchas personas siguen una vieja regla de que la partición de intercambio debe ser de dos veces el tamaño de su principal sistema de RAM. Esta regla es una tonterí­a. En un sistema moderno, es una gran cantidad de swap, la mayorí­a de las personas prefieren que sus sistemas no utilizen el espacio de intercambio nunca. Usted no quiere que su sistema nunca se agote la RAM + swap, pero por lo general prefieren tener suficiente memoria RAM en el sistema por lo que no tiene necesidad de swap.

Seleccione tamaño adecuado para su configuración

Aquí­ está mi recomendacion para un servidor comun (Web/Correo, etc):

  1. Espacio de intercambio (swap) == Igual al tamaño de RAM (si la RAM < 2GB)
  2. Espacio de intercambio (swap) == 2GB de tamaño (si RAM > 2GB)

Para servidores Oracle de alto desempeño y trabajo pesado con un sistema de almacenamiento RAID 10:

  1. Espacio de intercambio (swap) == Igual al tamaño de RAM (si RAM < 8GB)
  2. Espacio de intercambio (swap) == 0.50 veces el tamaño de RAM (si RAM > 8GB)

Recomendacion para Red Hat

Red Hat recomienda configurar de la siguiente manera para RHEL 5:

En realidad la cantidad de espacio de swap que un sistema necesita no es realmente en función de la cantidad de RAM que tiene, sino más bien la carga de trabajo que se está ejecutando en la memoria de ese sistema.

Un sistema Red Hat Enterprise Linux 5 funcionara bien sin espacio de intercambio, siempre y cuando la suma de la memoria anónima y el sistema de memoria compartida V es inferior o aproximadamente 3/4 la cantidad de RAM. En este caso, el sistema simplemente bloqueara la memoria anonima y compartida del sistema V en la RAM para almacenamiento en cachí© de sistema de archivos a fin que cuando la memoria se agote el núcleo sólo reclama memoria del pagecache.

Considerando que durante la instalacion del sistema operativo Linux es necesario configurar el espacio swap y no hay manera fácil de predeterminar la carga de trabajo para la memoria RAM.
Cuanto más RAM tenga un sistema, por lo general necesitara menos espacio de intercambio o memoria virtual.

  1. Sistemas con 4GB de RAM o menos requieren un mí­nimo de 2 GB de espacio de intercambio (swap).
  2. Sistemas con 4GB a 16GB de RAM, requieren como mí­nimo, 4GB de espacio de intercambio.
  3. Sistemas con 16GB a 64GB de RAM requieren un mí­nimo de 8 GB de espacio de intercambio.
  4. Sistemas con 64GB a 256GB de memoria RAM requieren un mí­nimo de 16 GB de espacio de intercambio.

La swap mantendra los servicios funcionando

La memoria virtual o espacio de intercambio mantendra la operación de un servidor con carga funcionando por un tiempo mediante el intercambio de procesos.

Para averiguar la utilización del espacio de intercambio podemos ejecutar alguno de los siguientes comandos:

  • cat /proc/swaps
  • swapon -s
  • free -m
  • top

Como conclusion es necesario añadir más RAM, ajustar el software (como administrar los procesos de Apache o instalar el servidor web lighttpd para salvar RAM) o utilizar algún tipo de balanceo de carga.

Tambií©n puede consultar la documentación del núcleo de Linux para /proc/sys/vm/swappiness.Con esto usted puede ajustar y mejorar el rendimiento el espacio de intercambio (swap).

Swap en el escritorio y portátiles

Si va a suspender a disco, entonces usted necesita que el espacio de intercambio sea mayor que la RAM del sistema. Por ejemplo, una portátil tiene 1GB de RAM y de intercambio 2GB. Esto sólo se aplica a los portátiles o computadoras de escritorio, pero no a los servidores.

Los programadores necesitan más espacio de intercambio

Si usted es un hacker del núcleo (depuración y fixes del kernel) y la generación de core dumps, usted necesita el doble de la RAM en el espacio de intercambio.

Conclusión

O le instala más RAM (recomendado) al servidor o bien utiliza un almacenamiento más rápido para mejorar el I/O de disco. No hay reglas, cada instalación y configuración es única. Ajuste los valores según sus necesidades y seleccione la cantidad de swap que es adecuada para usted y su entorno.

2 Replies to “Linux: Se debe de utilizar el doble de la cantidad RAM de espacio Swap?”

  1. La verdad que me sorprende la opinion de openBSD vertido en esta nota o la que el autor publico , la recomendacion vieja que venia de los sistemas unix , y a lo cual los linux se ajustan totalmente (inclusos los windows ) es por el volcado de memoria total ,,, el calcul o se hace por el doble sino de 1 a 1.5 veces la memoria ram ,, por otro lado con elcosto de giga por disco realmente mezquinarle swap al sistema me parece una barbaridad.-
    Eso se podia hacer en mis equipos donde los unix o xenix corrian con 640 kb de ram pero no hoy en dia.-
    Aca tambien hay unos calculos realizados que si tengo 1 gb dejo tanto si tengo 4 dejo otro tanto y si tengo 8 pongo lo menos posible , hay casos y muchos en donde ocurren volcados de memoria que son casi el 100 % de la ram , coincido que puede ser una falla en el diseño al estimarse el server , pero si te quedas sin ram y sin swap el server SE CAE ,, entonces vuelvo a la pregunta ¿por que mesquinar unos gigas ?? , si lo realmente caro hoy es la ram en server “enserio” ,, si ud tiene un server en donde 16 gigas de ram le salen 1500 dolares , no puede mezquinar el valor de 24 gb en disco en donde el coste de ese espacio no supera los 50 dolares y uds tiene un sistema que esta seguro funcionara .-

    1. No es cuestion de centavos por giga. Es tan simple como la velocidad de leer datos desde la ram es mucho mas rapido que leerlos de la swap. Asi que entre menos datos en SWAP mejor para el rendimiento general del servidor/aplicaiones.

      El viejo cuento del doble de la ram es tan obsoleto como los sistemas legacy, lo que mas sorprende es que haya gente que afirme que si el server se queda sin swap y ram SE CAE. Tengo servidores con apenas 8GB de RAM, 4 de SWAP y esquemas de bases de datos llegando a los 100GB, y a mi no SE me CAEN.

      Incluso hablando especificamente de Solaris, cuando una aplicacion, digamos Oracle se consume absolutamente toooda la memoria ram, el Solaris simplemente corta esa aplicacion, pero si se le pone el debido limite de memoria a Oracle, este puede estar al 100% y pasaran años y nunca se caera.

      En estos casos es mejor actualizarse con documentacion antes de hablar.

Deja tus preguntas o comentarios