La respuesta corta:
Establezca su archivo de intercambio en:
round(sqrt(RAM))
si no usas hibernación
RAM+round(sqrt(RAM))
si se hace uso de hibernación
¡Establezca su swappiness
10 en un escritorio, pero no en un servidor!
La respuesta larga:
En el pasado:
La regla general en uso durante los últimos 25 años ha sido un mínimo de 1xRAM y un máximo de 2xRAM, así que eso es lo que verá citado todo el tiempo.
Ese mínimo se estableció en la edad de piedra cuando era un adolescente y los dinosaurios todavía deambulaban por la Tierra y porque la RAM era demasiado costosa y absolutamente necesitabas ese espacio de intercambio para poder lograr cualquier cosa.
El máximo se estableció en ese momento debido a los rendimientos decrecientes: es demasiado lento para tener que intercambiar tanta memoria, ya que el acceso al HDD es un factor de 1000 más lento que la RAM: ¡bueno en una emergencia, pero no es realmente bueno para el uso diario! En ese momento, cuando se quedó sin espacio de intercambio, ¡era hora de agregar más RAM! (que sigue siendo cierto hoy).
En el presente:
Si no utiliza la hibernación y su memoria es superior a 1 GByte, la nueva regla general es round(sqrt(RAM))
dónde RAM
está obviamente el tamaño de su RAM en GB y sqrt
la raíz cuadrada. :-)
Si usa la hibernación, debe poder intercambiar la cantidad total de RAM + RAM ya intercambiada al disco, por lo que la fórmula se convierte en: RAM+round(sqrt(RAM))
La regla de rendimientos decrecientes aún se mantiene hoy en día para el máximo, pero a menos que pruebe su uso real, tomar 2xRAM es solo una pérdida de espacio en disco , así que no use el máximo A menos que se quede sin espacio de intercambio utilizando las otras metodologías .
Todos estos juntos le dan la siguiente tabla: (últimas 3 columnas que denotan espacio de intercambio)
RAM No hibernation With Hibernation Maximum
1GB 1GB 2GB 2GB
2GB 1GB 3GB 4GB
3GB 2GB 5GB 6GB
4GB 2GB 6GB 8GB
5GB 2GB 7GB 10GB
6GB 2GB 8GB 12GB
8GB 3GB 11GB 16GB
12GB 3GB 15GB 24GB
16GB 4GB 20GB 32GB
24GB 5GB 29GB 48GB
32GB 6GB 38GB 64GB
64GB 8GB 72GB 128GB
128GB 11GB 139GB 256GB
256GB 16GB 272GB 512GB
512GB 23GB 535GB 1TB
1TB 32GB 1056GB 2TB
2TB 46GB 2094GB 4TB
4TB 64GB 4160GB 8TB
8TB 91GB 8283GB 16TB
Lo anterior es solo una regla general; ¡No es la ley de la gravedad!
¡ Puede romper esta regla (a diferencia de la ley de gravedad) si su caso de uso particular es diferente!
Consejo profesional: siempre asigne SWAP al comienzo de un HDD ya que los cabezales necesitan moverse menos en el interior del disco.
Sí: en los SSD, realmente ya no importa dónde ubique el área de intercambio, ya que usan túneles cuánticos en lugar de cabezas móviles y los SSD modernos usan todas sus celdas de memoria (incluso el espacio no asignado) para evitar la degradación cuántica.
Cómo probar si su uso de intercambio es diferente de la regla "genérica":
Solo ejecuta:
for szFile in /proc/*/status ; do
awk '/VmSwap|Name/{printf $2 "\t" $3}END{ print "" }' $szFile
done | sort --key 2 --numeric --reverse | more
que le dará una lista de todos los programas en ejecución que se intercambian (con el que usa más espacio de intercambio en la parte superior)
Si está utilizando más de unos pocos KB: cambie el tamaño a más del mínimo, de lo contrario, no se moleste ...
Si estás en un servidor, deja de leer ahora: ¡estás listo!
Si está en un cliente de escritorio / portátil (no servidor), desea que su GUI sea lo más receptiva posible y solo se intercambie cuando realmente lo necesite . Ubuntu ha sido optimizado para intercambiarse temprano para el uso del servidor, pero en su cliente desea editar esa enorme imagen en bruto de 250 megapíxeles gimp
para que sea rápida , por lo que establecer su valor swappiness
en 10 evitará que el kernel se intercambie demasiado pronto, al tiempo que se asegura de que no t cambiar demasiado tarde:
Si tienes un sysctl.conf
archivo,
sudo nano /etc/sysctl.conf
O
Si tiene un sysctl.d
directorio pero no tiene un sysctl.conf
archivo, cree un nuevo archivo:
sudo nano /etc/sysctl.d/35_swap.conf
y en ambos casos agregue:
# change "swappiness" from default 60 to 10
# (theoretically only swap when RAM usage reaches around 80 or 90 percent)
vm.swappiness = 10
al final del archivo, guarde el archivo ( Ctrl+ XY+ Enteren nano) y ejecute un:
sysctl --system
para recargar el parámetro o tomar el enfoque Window $ y reiniciar ... :-)