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):
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 🙂