Cómo añadir swap a tu máquina virtual Linux en Azure

Ajeno a cuánta memoria física tenga tu máquina virtual Linux en Azure, siempre es bueno tener memoria swap para los casos en que algún proceso ocupe (ojala temporalmente) más memoria de lo normal y el kernel no tenga que matarlo.

Por ejemplo, hace poco en una VM Linux donde tengo un servidor de base de datos PostgreSQL ví lo siguiente en el comando dmesg:

[1715082.920252] postgres invoked oom-killer: gfp_mask=0x201da, order=0, oom_adj=0, oom_score_adj=0
[1715082.920256] postgres cpuset=/ mems_allowed=0
[1715082.920258] Pid: 37648, comm: postgres Not tainted 3.2.0-126-virtual #169-Ubuntu
[1715082.920259] Call Trace:
[1715082.920266] [] dump_header+0x91/0xe0
[1715082.920269] [] oom_kill_process+0x85/0xb0
[1715082.920271] [] out_of_memory+0xfa/0x220
...

oom-killer es el “asesino” de procesos cuando se acaba la memoria (Out-Of-Memory killer). Si te aparecen en dmesg, significa que te está faltando RAM.

Por suerte, activar el swap es muy fácil. Edita como root el archivo /etc/waagent.conf, y busca las líneas donde aparezca ResourceDisk:

# Format if unformatted. If 'n', resource disk will not be mounted.
ResourceDisk.Format=y

# File system on the resource disk
# Typically ext3 or ext4. FreeBSD images should use 'ufs2' here.
ResourceDisk.Filesystem=ext4

# Mount point for the resource disk
ResourceDisk.MountPoint=/mnt/resource

# Create and use swapfile on resource disk.
ResourceDisk.EnableSwap=y

# Size of the swapfile.
ResourceDisk.SwapSizeMB=4096

La clave es el EnableSwap, los otros valores están para indicar lo que estoy usando.

Luego ejecuta este comando para que se refresque la configuración:

service walinuxagent restart

Espera un par de minutos y comprueba la memoria adicional con el comando free, en la línea Swap debiera aparecer valores distintos a cero:

root@tsmaster2:/etc# free
             total       used       free     shared    buffers     cached
Mem:       3527032    3295480     231552          0      38640    2916964
-/+ buffers/cache:     339876    3187156
Swap:      4194300       1076    4193224

Agregar un comentario