¿Por qué tiene sentido el intercambio de caché?

9

Me suena bastante contraproducente almacenar en caché las páginas que se intercambian. Si intercambia páginas, ¿cuál es la ventaja de almacenarlas primero en la memoria caché, solo para tener que moverlas al lugar correcto? Incluso si las páginas se intercambian de forma proactiva, ¿no tiene más sentido "simplemente" intercambiarlas? ¿De hecho, el intercambio en caché no es solo un desperdicio de recursos?

txwikinger
fuente
Usted, señora / señor, recibe puntos extra para mí por sus preguntas. Ojalá pudiera votar dos veces.
Eli Frey

Respuestas:

12

Después de más investigación, descubrí que el término SwapCached /proc/meminfoes engañoso. De hecho, se relaciona con el número de bytes que son simultáneos en la memoria y el intercambio, de modo que si estas páginas no están sucias, no necesitan ser intercambiadas.

txwikinger
fuente
2
Sin embargo, eso es bastante equivalente a ser almacenado en caché, ¿no? Quiero decir, WRT el sistema de gestión de memoria del núcleo, "en caché" significa "tanto en el disco como en la RAM", ¿verdad?
SamB
0

Nunca he oído hablar de este y tampoco tiene mucho sentido para mí. Todavía creo que la buena regla de asegurarse de que simplemente no cambie (excepto, por supuesto, las reservas) es la mejor. Ahora, teóricamente, el almacenamiento en caché de cosas en la memoria disponible directa que lleva un tiempo cargar desde algo tan lento como un disco, tiene una ventaja aparente. Pero si puede almacenar en caché las páginas que se van a intercambiar, ¿por qué volver a intercambiarlas en primer lugar?

reiche
fuente
0

El punto de tener páginas duplicadas entre intercambio y RAM es evitar esperar el disco si:

  1. Algo necesita leer de ellos

  2. Necesitan ser desalojados para dejar espacio a otra cosa.

Si solo estuvieran en intercambio, el caso 1. significaría esperar a que entren desde el disco; si solo estuvieran en RAM, el caso 2. significaría esperar a que salgan al disco.

(Por supuesto, el caso 2 es en realidad un poco más complicado, ya que obviamente es más barato desalojar esas páginas, por lo que el kernel probablemente las desaloja preferentemente, pero el punto debería estar claro).

SamB
fuente