Uno de los aspectos más importantes y por los cuales debemos velar a diario como administradores o personal del área de IT, a parte de monitorizar es el óptimo rendimiento de los equipos Linux de la organización o de los equipos nuestros y esto abarca un amplio alcance que va desde liberar espacio en disco hasta aumentar la memoria RAM de los dispositivos.
En esta oportunidad analizaremos cómo podemos aumentar la memoria swap en equipos con CentOS 7.
La memoria swap almacena todos los archivos temporales en el disco duro lo cual permite que se optimice el rendimiento de la memoria RAM.
Todos sabemos que durante el proceso de instalación del sistema operativo podemos definir el espacio que estará reservado para la memoria swap en los parámetros del disco:
Es posible que llegue el momento en el cual nos quedaremos cortos de memoria y sea necesario añadir más memoria por lo cual a continuación veremos cómo agregar más memoria swap en nuestros equipos con CentOS 7.
1. Verificación cantidad de memoria Swap en el sistema
Antes de iniciar el proceso de ampliación de memoria es recomendable revisar el estado de la memoria swap del sistema usando el comando:
swapon -s
En caso que no obtengamos ningún resultado significa que no tenemos ningún archivo swap creado. Otra de las formas como podemos obtener información detallada de la memoria RAM y de la memoria swap es usando el comando:
free -m
Allí podemos ver el total de la memoria y la cantidad que hemos usado.
2. Verificar el espacio disponible en CentOS 7
El siguiente paso que debemos realizar es verificar la cantidad de espacio que tenemos disponible ya que, como hemos mencionado, la memoria swap puede ser una partición lógica dentro del disco.
Para validar el espacio disponible usaremos el comando:
df -h
3. Creación del archivo swap
El siguiente paso en este proceso es crear el archivo swap. Para ello crearemos un archivo llamada swapfile en la raíz /. (Este nombre lo podemos asignar según consideremos necesario).
En este archivo se indicará la cantidad de memoria que deseamos asignar como espacio de intercambio. La forma más sencilla y práctica de crear este archivo swap es usando el comando fallocate, así, si deseamos crear un archivo de 1 GB de espacio ingresaremos lo siguiente:
sudo fallocate -l 1G /swapfileUna vez pulsemos Enter debemos ingresar nuestra contraseña de administrador.
Podemos verificar que la cantidad indicada sea la correcta usando el siguiente comando:
ls -lh /swapfile
Podemos ver las propiedades, el usuario, la cantidad de espacio asignado y la fecha de creación del archivo.
4. Habilitación del archivo swap
Hasta este punto hemos creado el archivo swap pero es necesario que el mismo sea habilitado para que el sistema lo reconozca como un archivo swap, de lo contrario no hemos realizado nada.
El primer paso es asignar los permisos en el archivo, usando el comando chmod, para que nadie más que el usuario root pueda acceder y realizar cambios en el archivo swap. Ingresaremos lo siguiente:
sudo chmod 600 /swapfilePodemos validar que los permisos se han establecido de manera correcta usando de nuevo la línea:
ls -lh /swapfile
Ahora que sabemos que el archivo tiene los permisos requeridos debemos indicarle al sistema que el archivo creado será un archivo swap, para ello ingresamos lo siguiente:
sudo mkswap /swapfile
Con esto ya le hemos indicado a CentOS 7 que el archivo será de tipo swap.
5. Permitir que el archivo creado sea permanente
A continuación debemos configurar el archivo swap para que se convierta en permanente ya que al próximo reinicio del sistema no estará activo, para ello usaremos el comando fstab el cual se encarga de gestionar las tablas y sistemas de ficheros.
Ingresaremos el siguiente comando para acceder al archivo:
sudo nano /etc/fstabUna vez ejecutemos este comando veremos la siguiente ventana:
Allí debemos añadir lo siguiente en la parte superior del archivo:
/swapfile swap sw 0 0
Guardamos los cambios usando la combinación de teclas Ctrl + O y salimos del editor usando la combinación Ctrl + X.
6. Configuraciones adicionales
Existen algunos parámetros que podemos ajustar para que el funcionamiento del archivo swap sea el mejor y notemos el rendimiento en el sistema.
Los valores que podemos configurar son:
Este parámetro es el encargado de determinar la frecuencia con la cual el sistema CentOS 7 intercambio los datos de la memoria para el espacio de intercambio swap. Este valor está representado entre 0 y 100 y determina el porcentaje de uso de la memoria que activará el archivo swap.
Para ver el swappinees ingresaremos lo siguiente:
cat /proc/sys/vm/swappiness
Vemos que el valor, en este caso es 30. Entre más cercano esté el valor al cero (0) el sistema solamente va a intercambiar los datos en caso extremo. Si deseamos ajustar este valor ingresaremos lo siguiente con el valor deseado:
sudo sysctl vm.swappiness=5
Este cambio se verá reflejado en el siguiente reinicio del sistema. Adicional debemos editar el archivo sysctl.conf si queremos que el valor modificado sea permanente:
sudo nano /etc/sysctl.confUna vez se abra el archivo, añadiremos lo siguiente en la parte superior:
vm.swappiness = 5Quedará configurado.
Otro de los valores que podemos modificar es el de Cache Pressure, vfs_cache_pressure. Este parámetro está relacionado con las entradas especiales del sistema de archivos de los metadatos.
Para ver el valor actual de Cache Pressure usaremos el siguiente comando:
cat /proc/sys/vm/vfs_cache_pressure
Vemos que el valor por defecto es 100. Con este valor el sistema eliminará la información demasiado rápido por lo cual es aconsejable establecer un valor inferior, para ello usaremos el siguiente comando:
sudo sysctl vm.vfs_cache_pressure=35(Suponiendo que queremos dejarlo en 35)
Al igual que en el parámetro anterior debemos configurar el archivo sysctl.conf para que este cambio sea permanente. Allí ingresaremos la siguiente línea:
vm.vfs_cache_pressure = 35Usando estos comandos podremos añadir memoria swap en nuestro sistema CentOS 7 y optimizar el rendimiento del mismo.