caching - sirve - tipos de memoria cache
¿Qué significa caché frío y concepto de memoria caché? (3)
Leí un artículo y usé términos " caché fría " y " caché caliente ". Busco pero no encontré algo útil. ¿Qué significa el concepto de " caché fría " y " caché caliente "?
También visito this enlace, pero necesito algo más.
Muy buena respuesta @avd.
Cold Cache es solo un caché en blanco o uno con datos obsoletos.
Hot Cache, por otro lado, mantiene datos útiles que su sistema requiere. Le ayuda a lograr un procesamiento más rápido; en su mayoría, se utiliza para el procesamiento casi en tiempo real de las solicitudes. Hay sistemas / procesos que necesitan cierta información útil antes de que comiencen a satisfacer las solicitudes de los usuarios; tal como una plataforma de negociación que requeriría market-data / risk-info / security-info etc. antes de que pueda procesar una solicitud de usuario. Llevará mucho tiempo si para cada solicitud el proceso tiene que consultar un DB / servicio para obtener esta información crítica. Entonces sería una buena idea guardarlo en caché; y eso sería factible a través de Hot Cache. Este caché debe mantenerse regularmente (actualizaciones / remociones, etc.); de lo contrario, durante el período en que su caché puede crecer en tamaño con datos innecesarios, es posible que note una degradación del rendimiento.
Para crear Hot Cache, un método sería una laxitud de población de caché, lo que quiero decir con eso es que a medida que recibes solicitudes llenas el cache; en ese caso, las solicitudes iniciales serían lentas, pero las posteriores serían más rápidas. Otro enfoque sería cargar los datos al inicio del proceso (o antes de que las solicitudes de los usuarios comiencen a llegar) y mantener el caché hasta que el proceso siga vivo.
TL; DR Hay una analogía con el motor frío y el motor caliente del automóvil. Cold Cache: no tiene ningún valor y no puede darte ninguna aceleración porque, bueno, está vacío. Warm cache tiene algunos valores y puede darte esa aceleración.
La memoria caché es una estructura que contiene algunos valores (inodos, páginas de memoria, bloques de discos, etc.) para una búsqueda más rápida.
La caché funciona almacenando algún tipo de referencias cortas en la estructura de datos de búsqueda rápida (tabla hash, árbol B +) o medios de acceso más rápido (memoria RAM frente a HDD, SSD frente a HDD).
Para poder hacer esta búsqueda rápida necesita que su caché tenga valores. Veamos el ejemplo.
Digamos que tienes un sistema Linux con algunos sistemas de archivos. Para acceder a los archivos en el sistema de archivos, necesita saber dónde comienza su archivo en el disco. Esta información almacenada en inode. Para simplificar, decimos que la tabla de inodo está almacenada en algún lugar del disco (llamada parte "superbloque").
Ahora imagine que necesita leer el archivo / etc / fstab. Para ello, debe leer la tabla de inode del disco (10 ms), luego analizarla y obtener el bloque de inicio de archivo y luego leer el archivo (10 ms). Total ~ 20ms
Esta es demasiadas operaciones. Entonces está agregando un caché en forma de tabla hash en la RAM. El acceso a la memoria RAM es 10ns, es decir 1000 (!) Veces más rápido. Cada fila en esa tabla hash tiene 2 valores.
(inode number or filename) : (starting disk block)
Pero el problema es que al principio su caché está vacía; dicha caché se llama caché fría . Para explotar los beneficios de su caché, debe completarlo con algunos valores. ¿Cómo sucede? Cuando busca algún archivo, busca en su caché de inode. Si no encuentra el inode en la memoria caché ( falta de memoria caché ) está diciendo ''Bien'' y realiza un ciclo completo de lectura con la lectura de la tabla de inode, analizándolo y leyendo el archivo. Pero después de analizar la pieza, está guardando el número de inodo y analizado el bloqueo del disco de inicio en su caché. Y eso sigue y sigue: intenta leer otro archivo, busca en el caché, obtiene caché (su caché está fría), lee desde el disco, agrega filas en el caché.
Así que la memoria caché no te da ninguna aceleración porque aún estás leyendo desde el disco. En algunos casos, el caché frío hace que su sistema sea más lento porque está haciendo un trabajo extra (paso adicional de buscar en la tabla) para calentar su caché.
Después de un tiempo, tendrá algunos valores en su caché y, en algún momento, intentará leer el archivo, buscará en caché y ¡BAM! ¡has encontrado el inode ( golpe de caché )! ¡Ahora tiene un bloqueo de disco inicial, por lo que se salta la lectura de superbloque y comienza a leer el archivo! ¡Acabas de guardar 10ms!
Ese caché lo llama memoria caché caliente - caché con algunos valores que le da éxitos de caché.
Fondo:
Cache
es una memory
pequeña y más rápida, que ayuda a evitar que la CPU
acceda a la main memory
(más grande y más lenta) para ahorrar tiempo (las lecturas de la cache
son ~100 x
más rápidas que las lecturas de la main memory
). Pero esto solo ayuda si los datos que su programa necesita se cached
en la main memory
cached
(se leen de la main memory
cache
) y son válidos. Además, el cache
se llena con datos a lo largo del tiempo. Entonces, el cache
puede ser:
1. Vacío, o
2. puede contener datos irrelevantes , o
3. puede contener datos relevantes .
Ahora, a tu pregunta:
Memoria caché fría: cuando la cache
está vacía o tiene datos irrelevantes, por lo que la CPU
necesita hacer una lectura más lenta de la main memory
para los requisitos de datos de su programa.
Memoria caché activa: cuando la cache
contiene datos relevantes, y todas las lecturas para su programa se satisfacen desde la misma cache
.
Entonces, los cachés calientes son deseables, los cachés fríos no.