Que hacer cuando el problema es Memoria Swap

0 Comments

Problema de memoria swap en Linux Debian

Si falta memoria swap en tu servidor, solucionalo con un archivo swap. Hace unos días instale un servidor de correo interno utilizando Courier-MTA, la verdad se complico un poco ya que tuve que agregarle un DNS local con Bind 9 para que el mismo resolviera como el MTA del dominio.

En las pruebas con el personal todo camino bien, recibía y entregaba los correos para las cuentas locales correctamente, hasta hace unas horas.

Resulta que de la nada el outlook express de los clientes empezó a dar mensajes de error en las contraseñas. Ademas el envío y recepción de los correos se puso muy lento, tanto que la gente volvia a crear el mismo correo y esto solo empeora las cosas. La cola de correos empezo a crecer y crecer.

Como no tenia acceso físico al servidor de correo y vía ssh era demasiado lento, pase varias horas imaginando el posible problema y tratando de arreglar todo a ciegas.

Como mejorar el rendimiento de la memoria swap en Linux

La lentitud de todo el sistema se debió a que el disco duro estaba trabajando a toda capacidad, ya que el led permanecía intermitente. Al final de cuentas, y después de varios reboots logre ver un mensaje que indicaba problemas en el swap.

Según los mensajes no había suficiente memoria para el courier, y no había mas espacio en el disco para crear otra partición de swap y agregarle mas RAM no ayudo.

Finalmente logre resolver los problemas creando un archivo swap o swap file.

Procedimiento para agregar un archivo Swap en Linux

Utilizaremos el comando dd para crear el archivo swap. El comando mkswap es utilizado para configurar un area de swap en Linux en un dispositivo o dentro de un archivo.

Abrimos una terminal o consola, luego nos ingresamos como usuario root, incluso pueden conectarse remotamente desde ssh. Dentro de la terminal creamos un arhivo de memoria swap de 512MB, tecleando el comando:

# dd if=/dev/zero of=/swapfile1 bs=1024 count=524288

524288+0 records in
 524288+0 records out
 536870912 bytes (537 MB) copied, 18.4414 s, 29.1 MB/s

Donde,

  • if=/dev/zero : Lea del archivo especial /dev/file el cual provee los caracteres nulos necesarios para crear el archivo
  • of=/swapfile1 : Escriba a este archivo
  • bs=1024 : Escriba y lea 1024 Bytes al mismo tiempo
  • count=524288 : Solamente copie esta cantidad de bloques

Cambiamos los permisos para que el archivo swap no sea leido globalmente, si no solamente por usuario root.  Y activamos el archivo como swap

# chown root:root /swapfile1
# chmod 0600 /swapfile1
# mkswap /swapfile1
Setting up swapspace version 1, size = 512 MiB (536866816 bytes)
no label, UUID=c8d0d884-10b8-440d-89dc-d57bfc69bdb3

Activar el archivo swap durante el reinicio del sistema

Para activar /swapfile1 cada vez que el sistema Linux se reinicie, agregamos una linea al archivo /etc/fstab, de la siguiente manera;

# vi /etc/fstab
/swapfile1 none swap sw 0 0

Guardamos y cerramos el archivo, asi en el proximo arranque de Linux, este va a activar el nuevo archivo swap automaticamente.

Como verificar que el archivo de Memoria Swap este activo

Ahora bien, luego de terminada toda la configuracion del swap de nuestro servidor Linux, es necesario asegurarnos de su correcto funcionamiento. Para verificar que la memoria swap este activada tan solo tecleamos;

$ free -m
total used free shared buffers cached
Mem: 5915 5707 208 454 17 1008
-/+ buffers/cache: 4681 1233
Swap: 4042 934 3108

Desplegar el resumen de utilizacion del archivo swap

Es tan sencillo como teclear;

# swapon -s
Filename Type Size Used Priority
/dev/mapper/cryptswap1 partition 4140028 956816 -1
/swapfile1 file 524280 0 -1

Tambien existen otros comandos del sistema Linux que se pueden utilizar,

  • top
  • atop
  • htop

Otra opcion que podemos utilizar para conocer mas sobre nuestra memoria swap es /proc/meminfo;

$ less /proc/meminfo
$ grep -i --color swap /proc/meminfo
SwapCached: 30748 kB
SwapTotal: 6291448 kB

La memoria swap es muy importante en todo sistema Linux o Unix, sobre todo si es un servidor critico. Vean el link si desean leer mas y conocer como cuantificar la memoria swap en un servidor de base de datos.

Si tienen alguna duda o consulta, por favor escriban su comentario.

One Reply to “Que hacer cuando el problema es Memoria Swap”

Deja tus preguntas o comentarios