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?
kernel
swap
cache
algorithms
txwikinger
fuente
fuente
Respuestas:
Después de más investigación, descubrí que el término SwapCached
/proc/meminfo
es 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.fuente
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?
fuente
El punto de tener páginas duplicadas entre intercambio y RAM es evitar esperar el disco si:
Algo necesita leer de ellos
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).
fuente