May 012016
 
Artículo Administración de Servidores

En momentos de mucho uso, un servidor puede necesitar puntualmente ejecutar simultáneamente un número elevado de procesos. Cada proceso necesita reservar una cantidad de memoria física, y en ocasiones puede no haber suficiente memoria disponible para todos.

En este caso, el sistema rechaza la ejecución de los nuevos procesos.

Para evitar esto, se puede configurar un espacio de swap en disco. De este modo, el sistema guarda temporalmente en dicho espacio los bloques de memoria que tienen menos accesos, para liberar espacio y permitir la ejecución de los nuevos procesos.

En un servidor dedicado, es habitual crear una partición de disco dedicada a swap. Pero en otros casos no es posible particionar el disco. Este es en muchas ocasiones el caso de una máquina virtual contratada a un proveedor de hosting (Amazon Web Services, DigitalOcean, …)

En este caso, es posible crear un fichero y configurar el sistema para que lo utilize como espacio de swap. En este artículo se explica cómo realizar una configuración de este tipo.

1. Crear el fichero de swap

En este paso vamos a crear un fichero dedicado a swap bajo el directorio “/var”. Por seguridad, establecemos los permisos de manera que sólo el usuario root pueda leer y escribir en el mismo. Como usuario root, ejecutamos:

# cd /var
# touch swap.img
# chmod 600 swap.img

2. Dar un tamaño al fichero de swap

Lo habitual es dar al fichero un tamaño entre una y dos veces la cantidad de memoria física disponible en el sistema. En el siguiente ejemplo, crearemos un fichero con 2048 bloques de 1024k cada uno, para obtener un total de 2 GBytes. Como usuario root:

# dd if=/dev/zero of=/var/swap.img bs=1024k count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 4.0868896 s, 253 MB/s
#

3. Inicializar el fichero en forma de swap filesystem

El comando mkswap realiza un formateo del fichero, que lo prepara para ser utilizado como espacio de swap

# mkswap /var/swap.img
Setting up swapspace version 1, size = 1020 GiB
no label, UUID=72761533-8xbe-436l-b07e-c0sabe9cedf3

4. Habilitar el fichero de swap para ser usado por el sistema

Finalmente, con el comando swapon indicamos al sistema que utilice el fichero creado como espacio de swap

# swapon /var/swap.img

De la misma forma, podemos utilizar el comando ‘swapoff’ si en algún momento queremos dejar de usar el fichero como espacio de swap.

5. Configurar el sistema para que monte el fichero de swap durante el reinicio

La manera más sencilla de indicar al sistema que monte el fichero como swap durante el reinicio es añadir una entrada al fichero de configuración ‘/etc/fstab’, como en el siguiente ejemplo:

# echo "/var/swap.img    none    swap    sw    0    0" >> /etc/fstab

Nota: El espacio de swap sólo es útil si el sistema dispone habitualmente de suficiente memoria física para atender la carga de proceso que recibe, y sólo esporádicamente sufre picos de carga que durante breves momentos requieren más memoria de la que hay disponible. En caso contrario, el sistema estará continuamente leyendo y escribiendo del disco los bloques de memoria física que necesita (en lo que se conoce como “trashing”), y el rendimiento del sistema se degradará hasta el punto de inutilizarlo en la práctica.

Referencias:

 Publicado por en 12:08 pm

 Deja un comentario

(requerido)

(requerido)