¿Cómo borrar la caché de lectura de disco de Windows?


13

Para las pruebas de rendimiento, necesito borrar el caché de lectura de disco de Windows. Intenté buscar en Google pero no pude encontrar nada más que reiniciar u otras cosas manuales. Antes de rendirme y hacer eso, me gustaría saber si alguien conoce una forma de borrar la memoria caché de lectura de disco de Windows. Estoy probando en Windows 7, pero también estoy interesado en las soluciones de Windows XP.

Respuestas:


3

Alternativamente, llene el caché con datos que sabe que no se usarán en la prueba, luego ejecute la prueba.


1
Alternativamente, puede tomar toda la RAM disponible. Windows liberará el caché de archivos para usar esa RAM. Para más detalles vea la respuesta proporcionada por Stephen Denne.
Ultralisk

Esperaba algo menos 'alternativo' pero creo que su sugerencia es más fácil de implementar en un script de prueba automático en mi situación. Gracias por la sugerencia.
Sebastiaan M


3

Para una vista mucho mejor de la caché del sistema de archivos de Windows XP, pruebe ATM de Tim Murgent , le permite ver tanto el tamaño del conjunto de trabajo de la caché del sistema de archivos como el tamaño de la lista de espera en una vista más detallada y precisa. Para Windows XP: necesita la versión anterior 1 de ATM que está disponible para descargar aquí, ya que V2 y V3 requieren Server 2003, Vista o superior.

Observará que, aunque Cacheset reducirá el "Cache WS Min", los datos reales siguen existiendo en forma de listas de espera desde donde se pueden usar hasta que se hayan reemplazado por algo más. Para reemplazarlo con algo más, use una herramienta como MemAlloc, flushmem de Chad Austin o Consume.exe de las herramientas del Kit de recursos de Windows Server 2003.


3

He usado RAMMap . Tiene la posibilidad de liberar memoria de pocos tipos de asignaciones.

El contenido de la memoria caché de archivos se puede observar en la pestaña "Resumen de archivos" y seleccionando "Lista de espera vacía" en el menú "Vacío" debería borrar esta memoria caché.


Si bien esto puede responder teóricamente la pregunta, sería preferible incluir aquí las partes esenciales de la respuesta y proporcionar el enlace para referencia.
slm

1

Reinicia la máquina.


Esta es la solución 'el gran martillo'. Ver la respuesta proporcionada por Stephen Denne.
Ultralisk

1

La mejor práctica es asegurarse de que cualquier archivo de prueba con el que esté comparando sea 2 veces más grande que la caché del controlador de matriz (o la memoria del sistema operativo Windows si realiza una evaluación comparativa en un invitado vm), con un archivo de prueba mínimo de 1 GB. Esto asegura que cualquier almacenamiento en caché será negado. Utilizamos SQLIO para la evaluación comparativa de disco; Existe una gran cantidad de información en la documentación adjunta.


Una de las cosas que estoy tratando de hacer es evaluar qué tan rápido se desarrolla nuestro proyecto en varias configuraciones. Realmente no puedo aumentar el tamaño de esos archivos, creo. :)
Sebastiaan M

1

Haciéndose eco de Greg, la forma de solucionar este problema es asegurarse de que el conjunto de datos con el que está trabajando excede en gran medida la cantidad de RAM disponible. Si está realizando pruebas en una plataforma de hardware que también incluye una cantidad significativa de cachés de controladores y discos, querrá asegurarse de que también está excediendo esas cantidades. Esto asegurará que el rendimiento que ve esté más vinculado con el verdadero rendimiento del hardware que las optimizaciones de software que introducen todas esas capas de caché.

Dicho esto, si realmente está buscando purgar la memoria caché de lectura de datos útiles antes de ejecutar sus puntos de referencia que QUIEREN usar la memoria caché de lectura, la forma de hacerlo es leer en un solo archivo de tamaño justo debajo de su memoria de memoria caché de lectura y hacerle algunas operaciones de archivo. Esto purgará el caché y lo llenará con este único archivo grande. Una vez que lo cierra, su caché se vacía efectivamente de los datos que le interesan . La parte difícil es descubrir qué tan grande debe ser ese archivo, que en estos días bien podría ser del orden de 3 GB; en ese momento puede necesitar varios archivos basura de 1 GB para que funcione.


0

Creo que casi cualquier opción será "material manual". Bajo UNIX, es bastante estándar desmontar / volver a montar un dispositivo antes de cada ejecución de referencia, a menudo con un "newfs" incluido como medida. No sé si puede usar herramientas de línea de comandos en Windows para desmontar / montar dispositivos, pero si su objetivo es la automatización, entonces valdría la pena buscar tales utilidades.


1
En Linux, si desmontar / remuont no es una opción por alguna razón, también puede hacerlo sync; echo 3 > /proc/sys/vm/drop_caches, aunque esto afecta a todos los caché / buffers, no solo a los que pertenecen a un volumen en particular. Anteriormente busqué un truco similar para Windows pero no lo encontré.
David Spillett

0

Eche un vistazo a esta respuesta que acabo de publicar en mi propia pregunta en StackOverflow.

Básicamente: si intenta CreateFileun identificador sin acceso de escritura compartida, entonces vaciará y luego invalidará el caché, incluso si devuelve un error.

¡Espero que esto ayude!

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.