Cuando tu computadora necesita correr aplicaciones que son mas pesados que tu capacidad de memoria física instalada, los sistemas operativos mas modernos usan una tecnología llamada swapping, en la cual trozos de memoria son temporalmente almacenados en el disco duro mientras que la otra data es movida hacia el espacio de la memoria física Aquí hay algunas técnicas que te pueden ayudar a administrar mejor el swapping en los sistemas Linux y obtener el mejor performance del subsistema swapping de Linux.
Linux divide su memoria RAM en trozos de memoria llamados pages (paginas). Swapping es el proceso en el cual un page de memoria es copiado en el espacio del disco duro preconfigurado, llamado espacio o partición swap, para liberar ese page de memoria. El tamaño combinado de la memoria RAM y la partición swap es la cantidad memoria virtual disponible.
Swapping es necesario por dos importantes razones. Primero, cuando el sistema necesita mas memoria que la RAM es disponible, el kernel intercambia las pages usadas y proporciona mas memoria a la aplicación (proceso) que lo necesita inmediatamente. Segundo, un significante números de pages usadas por una aplicación durante su fase de inicio puede ser solo usada para la inicialización y luego no usada otra vez. El sistema puede intercambiar aquellas pages y liberar la memoria para otra aplicación o incluso para la cache de disco.
Como sea, swapping tiene una desventaja. Comparado a la memoria, el disco es muy lento. La velocidad de la memoria puede ser medida en nanosegundos, mientras que la del disco es medida en milisegundos, por eso acceder al disco puede ser diez veces mas lento que acceder a la memoria física.
Linux tiene dos formas de intercambiar (swap) espacio:
La partición swap y el archivo swap. La partición swap es una sección independiente del disco duro usada únicamente para intercambio. ningún otro archivo puede residir ahí El archivo swap es un archivo especial en el fichero del sistema (filesystems) que reside entre tu sistema y los archivos de datos.
Para ver cuanto espacio de intercambio tienes, usa el comando: swapon -s
Tendras una salida parecida a esta (dependiendo tu equipo):
agentdavid@Alienware:~$ swapon -s
Filename Type Size Used Priority
/dev/sda6 partition 497972 0 -1
Cada linea lista un espacio swap diferente que esta siendo usado por el sistema. Aquí el campo Tipo (Type) indica que este espacio swap es una partición en vez de un archivo y el campo Filename muestra que esta en el disco sda4. El tamaño (Size) esta mostrado en kilobytes, y el campo Used muestra cuantos kilobytes de espacio swap esta siendo usado. El campo Priority le indica a Linux cual es el espacio que debe ser usado primero. Una de las grandes ventajas del swapping en subsistemas Linux es que si montas dos o mas espacios swap (de preferencia en dos dispositivos diferentes) con la misma prioridad, Linux intercalara su actividad de swapping entre ellos, lo cual puede incrementar la performance del swap.
Actualmente las distros basadas en linux ya traen una interfaz durante la instalacion, para asignar la memoria swap, e incluso linux puede asignarlo automaticamente.
Pero siempre es importante entender y conocer como manualmente asignar la medida correcta de swap en nuestro equipo.
En un post futuro platicare acerca de este tema.