¿Cuál es el propósito de múltiples archivos de intercambio?


29

Durante la instalación de la mayoría de las distribuciones de Linux (si no todas), el disco duro se divide para incluir una partición de intercambio de forma predeterminada.

Es posible cambiar este comportamiento con swapon -p priority

Según las páginas del manual, la prioridad es:

PRIORITY
Each swap area has a priority, either high or low. The default priority is 
low. Within the low-priority areas, newer areas are even lower priority 
than older areas.
All priorities set with swapflags are high-priority, higher than default. 
They may have any non-negative value chosen by the caller. Higher numbers 
mean higher priority.

Swap pages are allocated from areas in priority order, highest priority 
first. For areas with different priorities, a higher-priority area is 
exhausted before using a lower-priority area. If two or more areas have the 
same priority, and it is the highest priority available, pages are 
allocated on a round-robin basis between them.

As of Linux 1.3.6, the kernel usually follows these rules, but there are 
exceptions

¿Por qué necesitarías más de un archivo de intercambio?
¿Es una práctica común para los administradores de sistemas configurar más de un intercambio?

Respuestas:


48

Hay muchas razones para tener múltiples áreas de intercambio (no es necesario que sean archivos), incluso si solo tiene un único eje.

20-20 retrospectiva: desplegó una máquina con una sola área de intercambio, y finalmente se dio cuenta de que no era suficiente. No puede volver a implementar la máquina a voluntad, pero puede hacer otra área de intercambio (probablemente un archivo) hasta que rehacer el diseño de la partición se convierta en una opción.

Cambiar el tamaño o mover áreas de intercambio: no puede cambiar el tamaño de las áreas de intercambio (como lo menciona Evan Teitelman ). Y no puede simplemente swapoffhacer una nueva área de intercambio y luego swaponnuevamente a menos que tenga suficiente RAM: swapoffquiere mover todas las páginas intercambiadas a RAM antes de soltar el área de intercambio. Entonces, haga un área de intercambio temporal, swapoffla original, espere hasta que todas las páginas se hayan movido desde el área de intercambio anterior a la temporal, cambie el tamaño de la partición de intercambio original mkswap, luego swaponla redimensionada y swapoffla temporal. Las páginas intercambiadas se copian del área de intercambio temporal a la redimensionada, y ya está. Si está moviendo áreas de intercambio, ni siquiera necesita un área temporal. mkswapel nuevo swapon, entoncesswapoff el viejo y todo se ha movido.

Intercambio rápido loco: los discos modernos emplean la grabación de bits de zona . La primera zona del disco es la más rápida. Es posible que desee medir el disco y crear una partición que cubra exactamente la primera zona más rápida de la unidad. Esto puede ser más pequeño que el tamaño de intercambio previsto. Entonces agrega múltiples particiones en varios discos, usando la misma técnica.

Intercambio rápido loco, la secuela: alternativamente, una vez que sepa dónde están las zonas más rápidas de sus discos, puede hacer áreas de intercambio de alta prioridad en la primera zona, áreas de intercambio de menor prioridad en la segunda zona, etc. De esta manera su sistema de intercambio automáticamente sabrá para equilibrar la carga en todas las zonas de disco rápido, prefiera las zonas más rápidas y use las zonas más lentas como área de desbordamiento cuando surja la necesidad.

Equilibrio de carga simétrico: en un sistema bien construido con muchos husos (como un servidor), me gusta tener múltiples particiones de intercambio que ocupen el comienzo de cada disco (para aprovechar la grabación de bits de zona ). Todos tienen prioridades idénticas, por lo que el núcleo equilibrará la carga del intercambio. Un husillo puede proporcionarle 100 MB / s, pero intercambiar todos los husillos podría proporcionarle un múltiplo de eso. (ingenuamente hablando)

Equilibrio de carga consciente de cuellos de botella: en la práctica, sin embargo, existen otros cuellos de botella. Entonces, por ejemplo, un servidor de 16 discos puede tener cuatro puertos SATA de 6 Gbps, cada uno con un multiplicador de cuatro puertos y cuatro discos que comparten el ancho de banda. Si conoce esto, puede organizar sus espacios de intercambio para que el Disco 1 en los Puertos 1–4 tenga la prioridad más alta, los segundos discos en los puertos 1–4 tengan la segunda prioridad más alta, etc. Esto cambiará el equilibrio de carga pero no abrumará el multiplicadores de puertos.

Intercambiando dispositivos con un rendimiento diferente: (como mencionó Luke) si su sistema no es un servidor nuevo y ha crecido orgánicamente a lo largo de los años, puede tener dispositivos de bloqueo que son significativamente más rápidos que otros. Primero querrá cambiar al dispositivo más rápido, luego al siguiente más rápido, etc.

Consideraciones de tamaño: (cortesía de David Kohen ) tal vez poner todo su intercambio en una unidad deja algunos conciertos libres en la unidad (esto suena como un escenario de 2001, pero hay muchos dispositivos antiguos o integrados donde esto podría ser un problema). Divídalo en todas las unidades y, además de todos los otros beneficios anteriores, obtendrá un mejor uso del espacio en disco por unidad. Una cosa es perder un par de conciertos por huso, y otra es perder 300 conciertos de un disco.

Emergencias: tiene exactamente 96 horas para presentar su tesis doctoral, y su último experimento (el que probablemente le otorgará ese premio Nobel, así como las funky letras de mayúsculas y minúsculas después de su nombre) está absorbiendo la memoria a tasas impresionantes. Estás casi sin intercambio. Usted crea un archivo de intercambio con una prioridad menor que la prioridad de su dispositivo de intercambio principal; el núcleo lo usará como espacio de intercambio de desbordamiento. Incluso podría instalar swapd para hacer esto automáticamente, por lo que también tendrá mucho espacio de intercambio para esas grandes emacsejecuciones y LaTeX.

Intercambio a través de diferentes medios: Linux no puede cambiar a dispositivos de caracteres, pero hay muchos medios diferentes, físicos y virtuales: SSD (nota: probablemente no desee intercambiar en SSD), docenas de tipos de giro increíblemente diferentes discos, disquetes (sí, puede intercambiar en un disquete; siempre puede pegarse un tiro en el pie con Unix), volúmenes DRBD , iSCSI, volúmenes LVM, particiones cifradas LUKS, etc. (incluidas combinaciones de capas surrealistas y alucinantes de estas) cambiar LUKS en LVM en una unidad ZIP de puerto paralelo a través de iSCSI a través de Ethernet agregada IEEE802.3ad? No hay problema, pervertido sucio). Estos son escenarios de nicho, y están destinados a soportar requisitos de nicho.


Gracias, no estoy familiarizado con la grabación de bit de zona. Tengo curiosidad por mover mi partición de intercambio al principio de la bandeja, así que abrí una nueva pregunta en
superuser.com

1
Agregaría una razón histórica de que en el pasado, usar un disco como dispositivo de intercambio a veces no era efectivo ya que usaba demasiado espacio y hacía que el resto del disco fuera inútil o menos útil, y dividir el espacio de intercambio en múltiples dispositivos proporcionó un compromiso entre un gran espacio de intercambio y la cantidad de espacio contiguo disponible en el disco.
Didi Kohen

Ese sigue siendo el caso. Además, es posible que desee que su intercambio ocupe la zona más rápida del disco, y solo eso. Lo que solo te da mucho espacio para jugar por huso. Aunque históricamente ese no fue el caso, porque los discos duros divididos en zonas son algo "nuevo". (mi versión de 'histórico' es cuando la memoria se midió en palabras)
Alexios

+1 para "siempre puedes dispararte en el pie con Unix" :-)
DUzun

3

Unidades de disco de múltiples velocidades. Puede configurar el más rápido para que se use primero, seguido de los más lentos si falla.


3

No puede expandir archivos de intercambio (al menos, hasta donde yo sé) o intercambiar particiones mientras están en uso. Si está a punto de llenar su área de intercambio disponible, es posible que tenga que crear archivos de intercambio adicionales.

Además, si un sistema necesita 4 GB de espacio de intercambio y tiene dos unidades de almacenamiento de 2 GB, debe usar al menos dos áreas de intercambio.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.