Archivo de intercambio en crecimiento dinámico en Debian

10

Sé cómo crear un archivo de intercambio y usarlo como intercambio. Pero tengo que configurar el tamaño del archivo de antemano y el espacio se usa en el disco, si se usa o no el intercambio.

¿Cómo creo un intercambio que tiene un tamaño inicial de 0 y crece bajo demanda?

rubo77
fuente
@Gilles: Solo tengo curiosidad: ¿por qué editaste el título (aparte del error tipográfico)? ¿No es deseable tener preguntas completamente pronunciadas aquí?
rubo77
1
Es mejor evitar palabras inútiles, especialmente al comienzo del título, que es donde las personas prestan más atención. Vea ¿Cómo escribo un buen título? . El "intercambio de crecimiento dinámico" da la idea esencial. "Cómo creo" no comienza a indicar de qué se trata la pregunta. Hay personas que prefieren hacer preguntas de títulos de preguntas porque son preguntas, pero es una razón tonta: el título también es el título de las respuestas.
Gilles 'SO- deja de ser malvado'

Respuestas:

3

Swapspace es antiguo y no se mantiene y podría conducir, algún día, a problemas en los sistemas modernos. Creo que la mejor solución para el intercambio dinámico es:

sudo apt install dphys-swapfile
sudo update-rc.d dphys-swapfile enable

luego poner CONF_SWAPFACTOR=2en /etc/dphys-swapfiley finalmente

sudo service dphys-swapfile start
Denis Pitzalis
fuente
Esto funciona, pero tenga en cuenta que podría estar mejor sin intercambio, consulte unix.stackexchange.com/a/136133/20661
rubo77
10

SwapSpace es una utilidad que crea un 'archivo de intercambio dinámico' que, según los requisitos del sistema operativo, cambia su tamaño.

Por lo tanto, incluso puede olvidarse de crear un archivo de intercambio virtual y simplemente instalar "SwapSpace" y automáticamente creará uno para usted e incluso lo cambiará de tamaño cuando sea necesario.

También puede usar 'Swapspace' junto con un archivo de intercambio creado manualmente y, cuando se rellene manualmente, 'Swapspace' creará automáticamente otro para el sistema operativo para que el sistema operativo siempre tenga un espacio de intercambio y mejore la estabilidad.

Otra cosa útil acerca de "SwapSpace" es que, siempre que sea posible, reducirá el tamaño de SwapSpace y "liberará" esos bytes en el sistema de archivos del usuario y, según los desarrolladores, esta reducción también ayuda a aumentar el rendimiento del archivo de intercambio ( Además, su espacio de disco duro "precioso" no se desperdicia también).

Instalar con

sudo apt-get install swapspace

Y ajuste el archivo de configuración a sus necesidades. Configuré el mínimo 0en mi máquina Debian VM con solo 8GB HDD


Además, también configuré el intercambio para 0minimizar el uso del valioso espacio del disco duro en mi VM:

Para cambiar el valor de intercambio del sistema, ábralo /etc/sysctl.confcomo root. Luego, cambie o agregue esta línea al archivo:

vm.swappiness = 0

(Reiniciar para que el cambio surta efecto)

rubo77
fuente
Esto no admitirá swsusp / suspensión al archivo de intercambio, a menos que el tamaño del archivo de intercambio creado ya sea lo suficientemente grande como para contener el volcado de RAM.
soze
Entonces, ¿cómo podríamos asegurarnos de que el archivo de intercambio sea lo suficientemente grande como para contener el ram?
rubo77
Tenga un archivo de intercambio de tamaño fijo del tamaño de RAM para suspender, y luego use swapspace para intercambio de tamaño dinámico
Tom Hale
Funcionó para mi. Esto es súper útil para discos SSD pequeños.
Adrián López
0

Afaik, cualquier partición de intercambio que haría con fdisk, por ejemplo, necesitaría un espacio mayor que 0, ya que está modificando el espacio de un disco existente y reasignándolo a otro lugar.

De todos modos, y respondiendo a su pregunta, puede hacer fácilmente una pequeña partición, asignarla como intercambio bajo fdisk y luego:

1) deshabilite el intercambio con swapoff -v 2) cambie el tamaño de la partición con lvresize 3) formatee la partición con mkswap4) vuelva a habilitar el espacio de intercambio conswapon -v

Luego, puede usar cat /proc/swapspara verificar si se ha actualizado o no. Puede usar esto fácilmente en un script, dependiendo de las especificaciones de su sistema, y ​​ejecutarlo bajo demanda para cada vez que necesite aumentar ese espacio de intercambio. Algo como:

$ swapoff -v /dev/swapvol1
$ lvresize /dev/swapvol1 -L +1G
$ mkswap /dev/swapvol1
$ swapon -v /dev/swapvol1
AleksanderKseniya
fuente
1
Esto no responde la pregunta porque el tamaño de intercambio se cambia manualmente, no bajo demanda. Además, cambiar el tamaño del LV no es útil: ¿dónde encuentra el espacio para crecer? ¿Cómo no se desperdicia el espacio liberado en la contracción? La pregunta se refiere a un archivo de intercambio, que resuelve el problema del espacio libre: está disponible para otros archivos.
Gilles 'SO- deja de ser malvado'
Cambiar el tamaño de intercambio bajo demanda es una buena idea, pero swapspace no cubre el escenario de swsusp que se utiliza para soportar la hibernación. Creo que esta respuesta podría ser más sensata para aquellos usuarios que necesitan soporte de hibernación. Hasta que swapspace lo maneje mejor, por supuesto.
soze