Importancia de la partición de intercambio

34
  • ¿Cuál es el propósito de una partición de intercambio?
  • ¿Cómo sé que tengo suficiente partición de intercambio? No mucho / poco.

Mi PC Ubuntu se usa para cosas típicas:

  • Web (correo electrónico, facebook, etc.)
  • Algunas peliculas
  • el juego es raro
lamcro
fuente
Por lo que se ha publicado, parece que tengo mucho CAMBIO. 3 GB de RAM, 300 GB de HD y una partición de 8 GB para el intercambio.
lamcro
2
El intercambio adicional que no se usa no te va a hacer daño, y recuperar el 1.7% de tu disco para hacerlo más pequeño probablemente no valga la pena. Sí, es mucho más grande de lo que probablemente usarás, no me preocuparía.
msw
1
También puede verlo como una partición de intercambio "a prueba de futuro", si alguna vez agrega memoria adicional a su sistema, no tendrá que agrandar el intercambio ... :)
JanC

Respuestas:

15

La partición de intercambio sirve para un par de propósitos.

  • Sirve como "respaldo" de RAM. Es decir, si su computadora se queda sin RAM, usará el área de intercambio como fuente temporal de más memoria. Más específicamente, 'intercambiará' elementos no utilizados de la RAM en el área de intercambio para dejar espacio libre para las aplicaciones que lo necesitan en ese instante. Esto no es ideal ya que la velocidad de transferencia de datos al disco duro es significativamente menor que la de su RAM normal. En la práctica, esto significa que es mucho más lento recuperar información del área de intercambio.

  • Se usa cuando la computadora hiberna. La hibernación implica tomar una imagen de la RAM en su estado actual (como un ISO representa una imagen) y guardarla en el área de intercambio. Luego vuelve a cargar esta imagen cuando la computadora se reinicia.

  • Para ser más útil, el área de intercambio debe ser al menos (RAM * 1.5) aunque se recomienda más. Por ejemplo, en mi sistema con 3 gb de RAM, tengo un área de intercambio de 7.2 gb.

richzilla
fuente
Si no usa algo, es ideal para cambiarlo al disco y usar la RAM para las cosas que usa (por ejemplo, mover CUPS u otros demonios que no usa muy a menudo para intercambiar le da más memoria para almacenar en caché el disco datos que realmente se usan mucho).
JanC
-1; "(RAM * 1.5) aunque se recomienda más" - en la PC de escritorio? Estás repitiendo la sabiduría convencional que ha sido falsa durante años.
@ user280493 Vale la pena señalar que la respuesta tenía años ... hace años cuando comentaste.
Crisfole
7

Esto es muy parecido a esta pregunta sobre el tamaño "correcto" para una partición de intercambio. Se aplica gran parte de la misma información de mi respuesta : básicamente, si desea hibernar, generalmente desea que su espacio de intercambio sea al menos tan grande como su RAM, y aparte de eso, un número redondo como 1 o 2 GB es fácilmente suficiente. Debido a que el intercambio es mucho más lento que la RAM, si está llenando varios gigabytes de intercambio, su computadora seguramente se ha vuelto inusualmente lenta.

Tampoco hay una necesidad real de una partición de intercambio: los archivos de intercambio (disponibles en los principales sistemas de archivos de Linux) ofrecen el mismo rendimiento y hacen que sea más fácil agregar más espacio de intercambio si decides que no tienes suficiente.

RAOF
fuente
4

aquí una información muy profunda sobre el intercambio

Algunas personas dicen el doble de tu carnero pero personalmente recomiendo esto:

intercambio = 1.5 X Ram total

Ejemplo:

si tienes 2 Gb de ram -> swap = 1.5 x 2 = 3

PD: Ubuntu Desktop usa Swap to Hibernate (PC apagada, no se necesita energía, se guardan los estados del programa). Si la hibernación es importante para usted, tenga más espacio de intercambio que RAM + desbordamiento de intercambio.

hhlp
fuente
2

El freecomando puede decirle cuánto intercambio está utilizando. Por ejemplo en esta máquina:

$ free -m
             total       used       free     buffers     cached
Mem:          1947       1863         84         312        758
-/+ buffers/cache:        792       1154
Swap:         4000          3       3997

me muestra que tengo 2 GB (1947 m) de RAM y que el sistema ha utilizado la mayor parte. Sin embargo, 312m se utilizan para memorias intermedias de E / S y el resto (758m) que el sistema ha decidido llenar con caché de disco.

El caché de disco es interesante porque está usando memoria rápida en lugar de disco lento para su contenido. Los contenidos se pueden obtener del disco, pero se guardan en caso de que sean necesarios. Esto también significa que hay 758m de memoria que pueden recuperarse en un instante si es necesario porque el sistema sabe que puede encontrar esos datos en el disco.

Es por eso que hay una segunda línea que muestra que si no hubiera buffering y cache, tendría la mitad de mi RAM (1154m) disponible para usar.

La tercera línea muestra que tengo una partición de intercambio demasiado grande (estaba allí y no estaba haciendo nada) de la cual se han utilizado la friolera de 3 millones. Esto es algo que el kernel realmente no espera tener que usar pronto, por lo que se quedó en el "porche trasero".

Mientras freele da la instantánea ahora, vmstatpuede darle una imagen en ejecución:

$ vmstat 10
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 0  0   3588  86236 316524 769132    0    0    14    13  126   81  4  1 95  0
 0  0   3588  83872 316532 770512    0    0     0    20  264 1229  3  1 96  0

Hay mucha información allí, pero lo interesante es que no hay tráfico de intercambio (si) o de intercambio (so). Lo que significa que no estoy usando el intercambio en los últimos 10 segundos.

msw
fuente
0
  • El área de intercambio es la parte del espacio del disco duro que se utiliza para admitir memoria RAM de espacio limitado. La RAM tiene un tamaño limitado, por lo que algunas aplicaciones necesitan más RAM que el espacio de RAM disponible. En ese caso, este espacio de intercambio también se denomina memoria virtual utilizada para admitir RAM.
  • Es más lento en velocidad en comparación con la velocidad de RAM. Cuando ejecutamos una aplicación grande, la parte utilizada menos recientemente de esa aplicación se intercambia a Área de intercambio en el disco duro, se vuelve a cambiar de Área de intercambio cuando es necesario. Esto le da al sistema operativo la sensación de tener más RAM de la que realmente tiene.
  • Es una partición dedicada en el disco duro creada durante la instalación del sistema operativo.
  • Es bueno si crea un área de intercambio del doble del tamaño de RAM.
  • Puede verificar el Área de intercambio usada y disponible con el siguiente comando:

    $ cat /proc/swaps 
    Filename                Type        Size    Used    Priority
    /dev/sda10              partition   7812092  16      -1
    
Vijesh
fuente
0

Tengo una computadora portátil con un disco duro lento, pero RAM relativamente alta (8 GB). En esta configuración, encuentro que una unidad de intercambio es contraproducente por las siguientes razones:

  1. Recuperar aplicaciones del intercambio es lento , comparable a cargar la aplicación desde cero. Prefiero tener un entorno que responda rápidamente, incluso si eso significa que a veces tengo que cerrar y volver a cargar aplicaciones, que un entorno que a veces se detiene inesperadamente.

  2. Si quisiera la capacidad de hibernar, eso significaría escribir muchos datos en el disco. Eso sería un desgaste constante de la batería si se realizara de manera persistente (el comportamiento predeterminado de swappiness 60), o si solo se hiciera en el tiempo de hibernación (al reducir el swapiness), entonces tomaría mucho tiempo hibernar realmente. Encontré que suspender es RAM en lugar de suspender en el disco que es bastante satisfactorio. Podría permanecer suspendido por un par de días, y se suspendería mucho más rápidamente que una hibernación completa.

  3. Debido a que el disco duro es lento, prefiero mantener 1GB de RAM reservada para el caché del disco , intercambiando efectivamente la memoria por velocidad. Esto mantiene mi máquina ágil, pero significa que solo puedo usar 7 GB de mis 8 GB de RAM para aplicaciones. El software que utilizo para lograr eso es una bifurcación de earlyoom que mata las pestañas antiguas del navegador cuando se ha utilizado el 88% de la RAM. De vez en cuando tengo que volver a cargar las pestañas antiguas del navegador que se han eliminado.

¿Cuándo no se aplicaría este consejo?

  • Si tiene una unidad de disco duro rápida , o un SSD, y tiene menos preocupaciones sobre el agotamiento de la batería, entonces las desventajas que describí anteriormente no se aplicarán. (Aunque los SSD tempranos pueden tener problemas con el desgaste, creo que cualquier SSD vendido desde 2018 debería estar bien).

  • Si su máquina tiene muy poca RAM , o si le gusta usar múltiples aplicaciones que consumen mucha memoria al mismo tiempo, es posible que necesite usar el intercambio para realizar su trabajo, independientemente de las desventajas. Este fue el caso de uso principal para el intercambio, antes de que la memoria comenzara a ser más barata.

  • Si realmente necesita hibernación (tal vez quiera suspender su computadora portátil y volver a abrirla después de unos días sin cargarla), entonces necesita una unidad de intercambio (se recomienda al menos tan grande como su RAM).

Advertencia:

  • Parte del software que dejamos en funcionamiento durante mucho tiempo (especialmente el sistema operativo y el entorno de escritorio) cargará código en la memoria que nunca se volverá a utilizar. Estas páginas podrían moverse para intercambiarse y nunca necesitarán ser retiradas nuevamente, evitando así las desventajas que mencioné anteriormente. Por esta razón, a veces creo un pequeño archivo de intercambio de 512 MB o 1 GB, y dejo que las páginas de memoria no utilizadas se intercambien. Esto me deja con un poco más de RAM para las aplicaciones. (Necesario: una técnica para medir la rotación de intercambio, para ayudar a ajustar el tamaño de este archivo de intercambio).
joeytwiddle
fuente