Ayuda OnLine de GULiC
¿Cuánto espacio reservar para la SWAP?
Esa es la eterna pregunta de todo el que se enfrenta a la instalación de sistema Linux. Hoy en día algunas distribuciones vienen con instaladores que particionan nuestro disco de forma automática. Pero si por cualquier motivo nos vemos obligados a hacerlo manualmente, seguramente nos haremos la gran pregunta.
Lo cierto es que pese a los años que han pasado sigue circulando el mito de que la swap debe ser el doble de grande que la memoria RAM. No se lo que pensarán otros, pero si yo tuviese un sistema de 4GB me rillaría bastante reservar 8GB. Hace ya tiempo que Russell Coker se enfrentó a este mito e hizo la siguiente recomendación:
- La swap del mismo tamaño que la RAM para equipos con menos de 1GB.
- La swap de la mitad de RAM para equipos de entre 2GB y 4GB.
- La swap de 2GB para equipos con más de 4GB de RAM.
Algún listo pensará ¿y que pasa si tengo 1.5?… siempre puedes poner el 75% de la RAM del equipo.
Otro mito (que confieso que en cierta medida yo mismo he ayudado a difundir) es aquel que dice que la swap ya no es necesaria. El motivo es que la perdida de rendimiento por utilizar la swap es muy importante, por lo que en en estos tiempos, y teniendo en cuenta al precio que se encuentra la RAM, puede ser mucho más rentable ir a la tienda de la esquina a comprar más. Sin embargo, no podríamos estar más equivocados. Hace ya 4 años que Martin Pool comentó en su blog que todas las páginas en Linux pueden clasificarse en una de las siguientes categorías.
- Páginas del núcleo que siempre están en memoria por lo que nunca son swapeadas.
- Código de programas, que son páginas de solo lectura por lo que su contenido es siempre el mismo que el del archivo en disco que contiene al programa.
- Páginas respaldadas en archivos, cuyo contenido es el mismo que el de una región de un archivo en disco que les sirve de respaldo. Cuando estas páginas permiten el acceso de escritura las modificaciones son escritas por el SO en el archivo mapeado.
- Páginas anónimas, aquellas que no corresponden con ningún archivo en disco. Eso incluye la pila, el montón o la memoria reservada dinámicamente con malloc().
Cuando el sistema se empieza a quedar sin memoria el núcleo debe escoger que páginas pasar al disco para recuperar memoria libre. Las páginas escogidas normalmente son las que se usan con menor frecuencia para evitar tener un impacto significativo en el rendimiento del sistema. Si una página escogida es no anónima siempre existe un archivo que sirve de respaldo al contenido de la página, por lo que puede ser recuperada fácilmente en el caso de que volvamos a necesitarla. Pero las páginas anónimas carecen de dicho respaldo, por lo que solo pueden ser salvadas y copiadas en la swap. ¿Qué ocurre entonces cuando un sistema que carece de swap se empieza a quedar sin memoria libre? Pues que el sistema por más que quiera no puede escoger nunca páginas anónimas para liberar memoria. No importa que dichas páginas sean las utilizas con menos frecuencia puesto que al no haber swap no tiene donde copiarlas. Eso obliga al sistema a siempre ganar memoria a costa de páginas no anónimas, aunque estas estén siendo utilizadas en mayor medida que algunas de las anónimas. Al no poder seleccionar las páginas más adecuadas para el reemplazo, el rendimiento del sistema se resiente.
Como bien dice Martin Pool “Disk is cheap, so allocate a gigabyte or two for swap”.
Saludos.
- blog de aplatanado
- Inicie sesión para enviar comentarios
- 663 lecturas


