Fuera de la caja, los servidores Vultr FreeBSD no están configurados para incluir espacio de intercambio. Si su intención es una instancia de nube desechable, probablemente no necesite preocuparse por esto. Si ha creado un servidor "real" que se va a quedar un tiempo, siga leyendo.
Incluso el servidor más ridículamente engalanado requiere espacio de intercambio. Así es como funciona el sistema operativo. Durante esos momentos en que su aplicación se vuelve un poco loca y come más RAM de la que debería, tener espacio de intercambio le dará la oportunidad de recuperar el control de la máquina. Incluso bajo operación normal, FreeBSD es proactivo sobre la administración de memoria. Por ejemplo, los programas de larga duración que están inactivos en la memoria se intercambiarán en el disco para dejar espacio para cosas útiles, como los cachés del sistema de archivos. ¡Ejecutar con intercambio cero es una receta para un comportamiento impredecible, y nadie que ejecute un servidor quiere eso!
Confirmar estado de intercambio
Antes de hacer algo, asegurémonos de que realmente no tengamos ningún intercambio.
swapinfo
No debería devolver nada. Al igual que:
vultr [~]# swapinfo
Device 1K-blocks Used Avail Capacity
vultr [~]#
Si de hecho está en blanco, continuemos y hagamos un archivo de intercambio. Pero primero...
¿Cuánto intercambio se necesita?
Las viejas reglas generales (1x RAM, 2x RAM, .5x RAM, etc.) realmente no se aplican en estos días. Si su servidor tiene 16 GB de memoria, ciertamente no necesita desperdiciar 32 GB de su valioso espacio en disco en un archivo de intercambio. Dicho esto, si tiene habilitados los volcados de memoria, dependiendo de cómo esté configurado, puede ser necesario un intercambio igual a su memoria para que funcione.
Entonces, qué tan grande es hacer el archivo de intercambio realmente depende de usted. La buena noticia es que siempre puede cambiarlo más tarde, y con el almacenamiento respaldado por SSD, no tiene que preocuparse demasiado por dónde termina en su disco. De todos modos, pasemos a ...
Crear y usar un archivo de intercambio
Crearemos un archivo de intercambio de 512 meg ubicado en /usr/swap0
. Siéntase libre de cambiar cualquier cosa si no funciona para usted. Por ejemplo, si desea 1 concierto de intercambio, cambie el 512 a 1024, y así sucesivamente. Si decide cambiar el nombre del archivo, asegúrese de cambiar ambas referencias.
Copie cuidadosamente lo siguiente, ejecútelo como root y estará todo listo:
dd if=/dev/zero of=/usr/swap0 bs=1m count=512
chmod 0600 /usr/swap0
echo "md99 none swap sw,file=/usr/swap0,late 0 0" >> /etc/fstab
swapon -aL
Confirme que ha funcionado:
vultr [~]# swapinfo
Device 1K-blocks Used Avail Capacity
/dev/md99 524288 0 524288 0%
En este punto, ya está todo listo. El intercambio está activo y continuará funcionando después de un reinicio.
Explicación para los curiosos.
El dd
comando crea el archivo real. Después de eso, establecemos los permisos apropiados, agregamos una línea /etc/fstab
para intercambiar y luego lo activamos. El comando swapon -aL
le dice al sistema operativo que active todas las particiones / archivos de intercambio en fstab, incluidos los marcados como retrasados. Debido a la forma en que se inicia FreeBSD 10.2, el archivo de intercambio debe montarse tarde. Cuando el sistema operativo se inicia normalmente, su intercambio se activará durante la etapa de "montaje de sistemas de archivos tardíos".