¿Qué es un caché?

Al solicitar datos de cualquier fuente, siempre hay algún retraso. El ping a los servidores web se mide en milisegundos, el tiempo de acceso al almacenamiento puede tener latencias en microsegundos, mientras que la latencia de RAM se mide en ciclos de reloj de la CPU. Por supuesto, este tipo de velocidades habrían sido impensables hace solo unas décadas, pero en el presente, nunca son lo suficientemente rápidas. La velocidad de acceso suele ser una forma de cuello de botella en el rendimiento. Una de las formas en que esto se puede abordar es con el almacenamiento en caché.

El almacenamiento en caché es un proceso de almacenamiento de una copia temporal de un recurso de manera que se pueda acceder a él más rápido de lo normal. Hay una gran variedad de implementaciones tanto en software como en hardware. Los cachés pueden actuar como cachés de lectura, cachés de escritura o ambos.

Leer cachés

En un caché de lectura, los datos que se han solicitado previamente se almacenan en un caché para un acceso más rápido. En algunos escenarios, la memoria caché puede incluso cargarse de forma preventiva con datos, lo que permite que la primera solicitud se atienda desde la memoria caché en lugar de solo las solicitudes posteriores.

El caché de lectura con el que probablemente esté familiarizado es el caché del navegador. Aquí el navegador almacena una copia local de los recursos solicitados. Esto significa que si se vuelve a cargar la página web o se carga una página similar que usa gran parte del mismo contenido, ese contenido se puede servir desde la memoria caché en lugar del servidor web. Esto no solo significa que la página web puede cargarse más rápido, sino que también reduce la carga en el servidor web y reduce la cantidad de datos que el usuario necesita descargar, lo que puede ser importante en las conexiones medidas.

La propia RAM también actúa como caché de lectura de datos en el disco duro. En este caso, los datos de un programa en ejecución se cargan de forma preventiva en la RAM para que la CPU pueda acceder a ellos más rápido. Luego, los datos de la RAM se almacenan en la memoria caché de la CPU, aunque el proceso para esto es mucho más complejo ya que la memoria caché de la CPU se mide en megabytes, no en gigabytes.

Escribir cachés

Un caché de escritura es un caché que puede absorber datos que se escriben en un dispositivo más lento. Un ejemplo común de esto sería el caché SLC en los SSD modernos. Este caché no permite que los datos se lean más rápido, sin embargo, es mucho más rápido escribir en él que escribir en el flash TLC o QLC que constituye el resto del SSD. El caché SLC puede absorber operaciones de escritura de alta velocidad y luego descarga esos datos tan pronto como sea posible en el flash TLC, que ofrece una densidad de almacenamiento mucho mejor, pero también es mucho más lento para escribir. El uso de la memoria flash de esta manera la optimiza tanto para velocidades de escritura rápidas como para alta densidad de almacenamiento.

Cachés híbridos

Hay muchas maneras de manejar los cachés que pueden permitirles actuar como un caché de lectura y escritura. Cada uno de estos métodos maneja las operaciones de escritura de manera diferente y tiene ventajas e inconvenientes. Las tres opciones son escritura alternativa, escritura simultánea y escritura no simultánea. Un caché de escritura alternativa omite por completo el caché al escribir, el caché de escritura directa escribe en el caché pero solo considera que la operación está completa cuando se ha escrito en el almacenamiento. La memoria caché de reescritura escribe en la memoria caché y luego considera que la operación está completa, confiando en la memoria caché para transferirla al almacenamiento si es necesario.

La escritura indirecta puede ser útil si espera un gran volumen de escrituras, ya que minimiza la rotación de caché. Sin embargo, significa que una operación que luego lee cualquiera de esos datos escritos enfrentará al menos una falla de caché la primera vez. Las cachés de escritura simultánea almacenan inmediatamente las operaciones de escritura en caché, lo que significa que el resultado se puede servir desde la caché la primera vez que se solicita. Sin embargo, para que se considere completa, una operación de escritura también debe escribir los datos en el disco, lo que agrega latencia. Una caché de reescritura tiene el mismo beneficio que una escritura directa, ya que permite que los datos escritos se sirvan inmediatamente desde la caché. Sin embargo, no requiere operaciones de escritura para escribir en el disco para que se considere completo. Esto reduce la latencia de escritura, pero conlleva el riesgo de pérdida de datos si la memoria caché es volátil y no termina de escribir los datos en el almacenamiento antes de que se pierda la energía.

¿Cómo eliminar datos del caché?

Uno de los factores limitantes de cualquier caché es la capacidad. Un caché grande toma mucho tiempo para buscar, anulando una buena parte de la ventaja de usar un caché en primer lugar. Las tecnologías de memoria utilizadas para el almacenamiento en caché también tienden a ser más costosas que la memoria desde la que se almacenan en caché. Si este no fuera el caso, es probable que ese nivel de memoria hubiera cambiado las tecnologías de memoria para mejorar el rendimiento. Ambos factores significan que los cachés tienden a ser relativamente pequeños, especialmente cuando se comparan con el medio de almacenamiento desde el que se almacenan en caché. La RAM tiene menos capacidad que el almacenamiento y la memoria caché de la CPU tiene menos capacidad que la RAM. La caché SLC tiene menos capacidad que la memoria TLC.

Todo esto significa que a menudo es necesario sacar los datos de la memoria caché para liberar espacio para los nuevos datos que deben almacenarse en la memoria caché. Hay una variedad de enfoques diferentes para esto. "Usado con menos frecuencia", prefiere desalojar las entradas de caché que tienen el recuento de acceso más bajo. Esto puede ser útil para predecir qué entradas tendrán el menor efecto en futuras fallas de caché, pero también contaría las entradas añadidas muy recientemente como que tienen un número bajo de accesos, lo que puede conducir a la pérdida de caché.

"Usado menos recientemente" prefiere desalojar las entradas de caché que no se han utilizado durante un tiempo. Esto supone que no se están usando actualmente, pero no tiene en cuenta si se usaron mucho hace un tiempo. "Utilizado más recientemente" prefiere desalojar las entradas de caché utilizadas más recientemente, asumiendo que se han utilizado y no será necesario volver a utilizarlas. El mejor enfoque es generalmente una combinación de los tres, informado por las estadísticas de uso.

Información obsoleta y riesgos de seguridad

El principal riesgo de los cachés es que la información que contienen puede volverse obsoleta. Una entrada de caché se considera obsoleta cuando los datos originales se han actualizado dejando la entrada de caché desactualizada. Es importante verificar regularmente que la copia en vivo que se publica todavía coincide con la copia almacenada en caché.

Específicamente en los sitios web, también es extremadamente importante identificar qué datos pueden y no pueden almacenarse en caché. Por ejemplo, está perfectamente bien que se almacene en caché un gran archivo JavaScript que no cambia. Esto evita que el usuario lo descargue cada vez, e incluso puede beneficiar a otros usuarios atendidos por el mismo caché. Sin embargo, no puede almacenar en caché datos específicos de la sesión. Imagínese lo que sucedería si navegara a una aplicación de mensajería mientras iniciaba sesión como usted mismo, solo para descubrir que recibió una versión en caché de los mensajes de otro usuario. Afortunadamente, los servidores web pueden especificar qué recursos pueden y no pueden almacenarse en caché y estos problemas generalmente son bien conocidos, por lo que hay pocos problemas como este.

Conclusión

Un caché es una parte de la memoria que puede almacenar algunos datos usados ​​recientemente en un método de almacenamiento que es más rápido de acceder de lo que sería completar el proceso normal de acceso a los datos nuevamente. Una memoria caché suele tener una capacidad limitada, lo que significa que necesita desalojar las entradas una vez que está llena. Los cachés son generalmente transparentes para el usuario, lo que significa que la latencia es la única indicación de que el resultado se entregó a través de un caché.



Leave a Comment

Qué Hacer Si Powerbeats Pro No Carga en el Estuche

Qué Hacer Si Powerbeats Pro No Carga en el Estuche

Si tus Powerbeats Pro no cargan, utiliza otra fuente de energía y limpia tus auriculares. Deja el estuche abierto mientras cargas tus auriculares.

Fundamentos de Impresión 3D: Una Lista de Verificación de Mantenimiento Imprescindible

Fundamentos de Impresión 3D: Una Lista de Verificación de Mantenimiento Imprescindible

Mantener tu equipo en buen estado es fundamental. Aquí hay algunos consejos útiles para mantener tu impresora 3D en óptimas condiciones.

Canon Pixma MG5220: Escanear Sin Tinta

Canon Pixma MG5220: Escanear Sin Tinta

Cómo habilitar el escaneo en la Canon Pixma MG5220 cuando se queda sin tinta.

5 Razones por las Que Tu Portátil Se Está Sobrecalentando

5 Razones por las Que Tu Portátil Se Está Sobrecalentando

Descubre algunas de las posibles razones por las que tu portátil se está sobrecalentando, junto con consejos y trucos para evitar este problema y mantener tu dispositivo fresco.

Cómo instalar un SSD en PCs de escritorio y portátiles

Cómo instalar un SSD en PCs de escritorio y portátiles

¿Acabas de comprar un SSD con la esperanza de mejorar el almacenamiento interno de tu PC, pero no sabes cómo instalarlo? ¡Lee este artículo ahora!

Cómo solucionar el código de error 0xC272008F de GeForce Now

Cómo solucionar el código de error 0xC272008F de GeForce Now

Te estás preparando para una noche de juegos y va a ser una gran noche: acabas de conseguir “Star Wars Outlaws” en el servicio de streaming GeForce Now. Descubre la única solución conocida que te muestra cómo arreglar el error 0xC272008F de GeForce Now para que puedas empezar a jugar los juegos de Ubisoft nuevamente.

Fundamentos de la Impresión 3D: Consejos de Mantenimiento para su Impresora 3D

Fundamentos de la Impresión 3D: Consejos de Mantenimiento para su Impresora 3D

Mantener sus impresoras 3D es muy importante para obtener los mejores resultados. Aquí hay algunos consejos importantes a tener en cuenta.

Cómo encontrar la dirección IP de una impresora

Cómo encontrar la dirección IP de una impresora

¿Tienes problemas para averiguar cuál es la dirección IP de tu impresora? Te mostraremos cómo encontrarla.

Cómo usar AirPods con teléfonos Samsung

Cómo usar AirPods con teléfonos Samsung

Si tienes dudas sobre si comprar AirPods para tu teléfono Samsung, esta guía te ayudará. La pregunta más obvia es si son compatibles, y la respuesta es: ¡sí, lo son!

Solución de problemas de Roku no actualiza el software

Solución de problemas de Roku no actualiza el software

Asegúrate de que tu dispositivo Roku funcione correctamente actualizando el software. Aquí tienes soluciones efectivas para el problema de actualizaciones de Roku.