Implementé un truco para agregar espacio de intercambio a un VPS que de otra manera no me permitiría usar swapon
para crear un archivo.
Antes de agregar y ejecutar el script, seguí los pasos descritos aquí. y resumido a continuación:
- Primero creo el archivo de intercambio:
sudo dd if=/dev/zero of=/swapfile bs=1024 count=512k
- Entonces
sudo mkswap /swapfile
. - El siguiente paso generalmente hubiera sido hacer un
sudo swapon /swapfile
. Sin embargo, el VPS que estoy usando no coincide con eso, así que encontré esta publicación. Afirmaba que podía usar el siguiente script como solución alternativa.
Vea abajo:
#!/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
Para más contexto, el proceso se describe en detalle en esta respuesta . (En su mayoría solo se alimenta con cuchara al ejecutar un script bash).
Todo parece estar bien, sin embargo, cuando miro en htop (o free -m
para el caso); el uso de memoria permanece en el valor que tenía cuando ejecuté el script y el espacio de intercambio utilizado permanece en cero. Esto es independientemente del proceso que ejecute en el servidor. Mi conocimiento de lo que está sucediendo en la asignación de memoria es muy limitado (esta es realmente la primera vez que lo hago). ¿Alguien podría decirme si esto tiene sentido, dado el script que estoy ejecutando, y por qué?