La computadora de mi trabajo (Windows 7 de 64 bits) pasa mucho tiempo intercambiando memoria cuando cambio de programa. Esto me sorprende ya que tengo 4 GB de RAM, y los programas que uso no son particularmente hambrientos de RAM (Outlook, Emacs, p4win, Firefox, varias herramientas de compilación). Descargué RAMMap y muestra más de un gigabyte de memoria utilizada por "Metafile".
Del blog de Sysinternals :
El metarchivo es parte de la memoria caché del sistema y consta de metadatos NTFS. Los metadatos de NTFS incluyen la MFT, así como otros archivos de metadatos de NTFS. ... En la MFT, cada registro de atributo de archivo toma 1k y cada archivo tiene al menos un registro de atributo. Agregue a esto los otros archivos de metadatos NTFS y podrá ver por qué la categoría de Metarchivo puede crecer bastante en servidores con muchos archivos.
Así que entiendo cuáles son los datos del "Metarchivo" ... Trabajo en compilaciones grandes que comprenden cientos de miles de archivos (ninguno es tan grande, pero suman varios gigabytes). Mi pregunta es ¿cómo puedo reducir la cantidad de memoria utilizada por "Metafile"? No estoy usando activamente todos esos archivos a la vez, entonces, ¿por qué Windows necesita mantener la información en la RAM? Reiniciar mi máquina cada vez que sincronizo una nueva compilación es realmente molesto.
Respuestas:
Creo que el caché del sistema libera su memoria cuando es necesario, pero pueden ocurrir fallas. A continuación se enumeran algunas posibilidades.
Su sistema de 64 bits asigna la memoria de video en los primeros 4 GB de memoria. Entonces, si su tarjeta de video tiene mucha memoria, esa memoria se pierde, como se describe en:
La memoria utilizable puede ser menor que la memoria instalada en las computadoras con Windows 7
Puede examinar el uso de la memoria en la computadora abriendo el Administrador de dispositivos y, en el menú Ver, seleccione "Recursos por conexión". Expanda el nodo Memoria y vea si puede descubrir qué ocupa la memoria, si es que hay algo. En algunos casos, la memoria se puede aumentar deshabilitando dispositivos no utilizados como FireWire.
También puede intentar hacer exactamente lo contrario de lo que se describe en este artículo:
Aumente el tamaño de la memoria caché del sistema de archivos en Windows 7
También puede intentar deshabilitar Windows 7 SuperFetch .
Si nada ayuda, sería útil publicar una captura de pantalla de la pestaña Administrador de tareas llamada Rendimiento.
fuente
Windows Server 2008 R2 experimenta exactamente el mismo problema de "caché" de metarchivo, que demasiada información de metarchivo se mantiene en la memoria activa, por lo que las funciones de caché no tienen permiso para permitir que esta memoria se libere cuando hay presión de memoria.
Escribí un script de powershell en la página serverfault.com Uso de RAM de metarchivo de Windows Server 2008 R2 que establece la memoria activa de metarchivo máxima en algo razonable. El resto se traslada a la memoria en espera, y las funciones de caché normales pueden priorizar las cosas de manera adecuada. Windows 7 x64 y Server 2008 R2 x64 tienen límites de memoria activa máxima predeterminados para datos de metarchivo de 1 TB. Sí TB, no GB.
El trabajo ahora ejecuta ese script en todos nuestros sitios en nuestros servidores que organizan las copias de seguridad del sitio, que manejan millones de archivos durante su ciclo de copia de seguridad todos los días. Estos servidores de respaldo también ejecutan un programa Java con mucha memoria (VMware vSphere), 2 servidores SQL y WSUS con su propio servidor SQL. Con el software de copia de seguridad leyendo primero los metadatos (nombre, tamaño, fecha de modificación, permisos, atributos, etc.) para determinar la lista de archivos de los que realizará una copia de seguridad que pasará MUY rápidamente llena la caché del metarchivo. Incluso haciendo todo lo que hacen, navegan muy bien con solo 4 GB de RAM.
fuente