Caché de páginas: almacenamiento en memoria de datos de archivos en memoria virtual
La caché de páginas guarda en RAM contenidos de archivos usados recientemente como páginas de memoria. Reduce E/S de disco, admite archivos mapeados y funciona en kernels modernos como una caché unificada.
Resumen
La caché de páginas es un mecanismo del kernel que mantiene los contenidos de archivos usados recientemente en la memoria principal como unidades del tamaño de una página, en lugar de como bloques de disco en bruto. Al almacenar en caché los datos de archivo a la escala de las páginas de memoria virtual, el sistema operativo puede atender lecturas y escrituras desde la RAM cuando es posible, lo que reduce la E/S de disco y mejora la respuesta de las aplicaciones. En muchos sistemas modernos, la caché de páginas está integrada con el subsistema de memoria virtual para poder contener tanto páginas respaldadas por archivos como páginas anónimas; a este enfoque a menudo se le llama un diseño de memoria virtual unificado.
Funcionamiento
En una lectura de archivo, el kernel comprueba la caché de páginas para localizar la página solicitada. Un acierto en caché devuelve la página desde la RAM; un fallo obliga al kernel a obtener la página del almacenamiento e insertarla en la caché. Las escrituras pueden aplicarse a la caché y diferirse para más tarde en el disco (write-back) o forzarse al almacenamiento de inmediato (write-through o escrituras síncronas), según los indicadores de la llamada al sistema. La caché se gestiona mediante políticas de expulsión que se aproximan al comportamiento de menos recientemente usado, y con técnicas de rendimiento como la lectura anticipada (readahead) para precargar páginas secuenciales.
Historia y adopción
Originalmente, algunos sistemas utilizaban búferes separados para los dispositivos de bloque y para la memoria de los procesos. A medida que maduró la memoria virtual, muchos kernels pasaron a un modelo unificado que evita la duplicación de almacenamiento intermedio y simplifica la gestión de memoria. Los kernels tipo Unix, Solaris y la familia Windows NT son ejemplos de sistemas que usan la caché de páginas como parte de sus implementaciones de memoria virtual. Los detalles de los algoritmos y de los parámetros ajustables difieren entre implementaciones, pero la idea central —usar la RAM para mantener contenidos de archivos en unidades del tamaño de una página— es común.
Usos y consideraciones operativas
La caché de páginas beneficia a una amplia variedad de cargas de trabajo al reducir la latencia de lecturas repetidas y suavizar ráfagas de escrituras. Como la caché consume RAM que de otro modo podría permanecer sin usar, normalmente se recupera de forma automática bajo presión de memoria y queda disponible para las aplicaciones cuando se necesita. Las herramientas de supervisión del sistema y la documentación suelen informar de la memoria en caché por separado; consulte la documentación del sistema operativo para conocer los contadores y significados específicos de cada plataforma. Las aplicaciones que requieren durabilidad garantizada deben vaciar explícitamente los datos modificados (por ejemplo, con fsync), porque las escrituras en caché pueden no llegar de inmediato al almacenamiento estable.
Distinciones y límites importantes
- Unificadas frente a separadas: las cachés unificadas contienen tanto páginas de procesos como páginas respaldadas por archivos, mientras que los diseños antiguos mantenían separados los búferes de bloques.
- Páginas sucias: las páginas modificadas en RAM pero aún no escritas al disco se llaman sucias y el kernel las vacía periódicamente al almacenamiento.
- Contaminación de la caché: los análisis secuenciales de gran tamaño pueden expulsar datos útiles de la caché; los kernels suelen ofrecer heurísticas u opciones de API para reducir esa contaminación.
- Supervisión y ajuste: interpretar correctamente las métricas relacionadas con la caché ayuda a los administradores a no evaluar mal la memoria disponible y el rendimiento de E/S.
Artículos relacionados
Autor
AlegsaOnline.com Caché de páginas: almacenamiento en memoria de datos de archivos en memoria virtual Leandro Alegsa
URL: https://es.alegsaonline.com/art/73991