Cómo crear memoria SWAP Linux en servidores con OpenVZ

Posiblemente si tienes un servidor VPS OpenVZ te hayas encontrado con el siguiente error si has intentado crear memoria SWAP: “swapon failed: Operation not permitted”

En OpenVZ no vamos a poder crear memoria SWAP (gestión de memoria de intercambio), así que lo que vamos a tener que hacer es crear una falsa memoria SWAP. Estos son los pasos para hacerlo.

1.-Creamos un archivo para ejecutar una serie de comandos:

vi fakeswap.sh

2.- En el archivo ponemos lo siguiente:

#!/bin/bash

SWAP="${1:-512}"

NEW="$[SWAP*1024]"; TEMP="${NEW//?/ }"; OLD="${TEMP:1}0"

umount /proc/meminfo 2> /dev/null
sed "/^Swap\(Total\|Free\):/s,$OLD,$NEW," /proc/meminfo > /etc/fake_meminfo
mount --bind /etc/fake_meminfo /proc/meminfo

free -m

3.-Le damos permisos de ejecución al archivo y lo ejecutamos:

chmod +x fakeswap.sh
sh fakeswap.sh

4.- Comprobamos que se ha creado la memoria SWAP:

free -m

Obteniendo un resultado similar a este (512MB de memoria):

swap openvz

Si quieres crear más memoria SWAP solo tienes que hacer lo siguiente (por ejemplo 1024MB):

sh fakeswap.sh 1024

¿Cuál es el tamaño ideal de esta partición SWAP respecto a la RAM disponible?

  • Con memoria RAM de hasta 1 GB debería ser igual de grande la SWAP que la RAM.
  • Entre 2 y 4 GB, la SWAP debería la mitad de grande que la RAM.
  • Con más de 4 GB no se debería sobrepasar los 2 GB de SWAP.
  • Hola buenas.
    No me funciona la solución. Cuando ejecuto sh fakeswap.sh el mensaje que aparece es “fakeswap.sh: 5: fakeswap.sh: Bad substitution”
    Por cierto, utilizo sistema operativo Ubuntu.
    No se si podrías ayudarme a solucionarlo.
    Un saludo.

    • El script tiene que ser ejecutable: chmod a+x fakeswap.sh

      Y luego tienes que ejecutarlo de la siguinete manera: ./fakeswap.sh

      • Ya funciona. Muchas gracias @ivanbenitogarcia:disqus

      • Buenas Ivan.
        Perdoma que vuelva a molestarte pero ahora cada vez que ejecuto free-m los valores que me parecen son siempres los mismos. ¿no deberían variar?

        • hola!,

          El sistema usa memoria SWAP cuando no le queda otra opción, es decir, cuando no tienen memoria real de donde tirar. En tu caso tienes bastante memoria libre 🙂