Experimenta problemas de rendimiento en aplicaciones y servicios cuando la caché de archivos de sistema consume la mayor parte de la RAM física

Se aplica a: Microsoft Windows XP Professional x64 EditionWindows Vista Home BasicWindows Vista Home Premium

Síntomas


Experimenta problemas de rendimiento en aplicaciones y servicios en diversas versiones de Windows XP, Windows Vista, Windows Server 2003, Windows Server 2008 y Windows Server 2008 R2. Además, observa los síntomas siguientes:
  • Memoria disponible está casi agotada.
  • La caché de archivos de sistema consume la mayor parte de la RAM física.
  • Hay un volumen elevado y continuo de peticiones leídas en caché en el disco duro.

Causa


La administración de memoria en sistemas operativos Microsoft Windows utiliza un algoritmo basado en la demanda. Si cualquier proceso solicita y utiliza una gran cantidad de memoria, aumenta el tamaño del conjunto de trabajo (el número de páginas de memoria en la memoria RAM física) del proceso. Si estas solicitudes son continuas y unchecked, el conjunto de trabajo del proceso crecerá para consumir toda la RAM física. En esta situación, los conjuntos de trabajo de todos los procesos se paginan en el disco duro. Este comportamiento reduce el rendimiento de aplicaciones y servicios, ya que las páginas de memoria continuamente se escriben en el disco duro y leer desde el disco duro.

Este comportamiento también se aplica al conjunto de trabajo de la caché de archivos de sistema. Si hay un volumen elevado y continuo en caché las solicitudes de lectura desde cualquier proceso o desde cualquier controlador, aumentará el tamaño del conjunto de trabajo de la caché de archivos de sistema para satisfacer esta demanda. La caché de archivos de sistema consume la memoria RAM física. Por lo tanto, una cantidad suficiente de RAM física no está disponible para otros procesos.

En versiones de 32 bits de Microsoft Windows los sistemas operativos anteriores a Windows Vista, los conjuntos de trabajo de la caché de archivos del sistema tienen un límite de memoria teórico de menos de 1 gigabyte (GB). La limitación del rango de direcciones virtuales impide que los conjuntos de trabajo de la caché de archivos de sistema agotar la RAM física.

En versiones de 32 bits de sistemas operativos Windows Vista, los recursos del núcleo se asignan dinámicamente. Aumenta el conjunto de trabajo de la caché de archivos de sistema para consumir el intervalo de direcciones virtuales del modo núcleo a expensas de otros recursos del núcleo. La limitación de este intervalo de memoria es inferior a 2 GB. Si el equipo tiene más de 2 GB de RAM física, la caché no puede agotar toda la RAM física. Sin embargo, la caché puede agotar el espacio de direcciones virtuales en el núcleo. Esto puede provocar errores de asignación de otros componentes del núcleo.

En versiones de 64 bits de sistemas operativos Windows, el tamaño del intervalo de direcciones virtuales es normalmente mayor que la RAM física. En esta situación, puede aumentar el conjunto de trabajo para la caché de archivos de sistema para consumir la mayoría de la RAM física.

Solución


Los algoritmos de administración de memoria en sistemas operativos Windows 7 y Windows Server 2008 R2 se actualizaron para solucionar muchos problemas con el almacenamiento en caché de los archivos que se encontraron en versiones anteriores de Windows. Hay determinadas situaciones únicas en el que tiene que implementar este servicio en los equipos que ejecutan Windows 7 o Windows Server 2008 R2.

Cómo determinar si el sistema está afectado

Para determinar si el sistema está afectado por este problema, instale la herramienta SysInternals RamMap. Puede obtener la herramienta desde el siguiente sitio Web de Windows Sysinternals:
 
Cuando ejecuta la herramienta, seleccione la opción Usar cuenta . Esto muestra varias columnas que muestran el patrón de uso de memoria actual. Haga clic en la columna para ordenar por el número de bytes utilizados activa y tenga en cuenta el uso superior directamente en el total.

Si la parte superior utiliza count es "Metarchivo" y, si se utiliza una gran parte de la memoria disponible, experimenta el problema de la caché de archivos de sistema que se describe en la sección "Síntomas". Puede comprobarlo mediante el Monitor de rendimiento para supervisar el contador de Bytes residentes de caché de Memory\System y ver la caché de crecer continuamente con el tiempo.

Figura 1. Resultado de RamMap de ejemplo en el que el equipo está experimentando el problema.



Figura 2. Resultado de RamMap de ejemplo en el que el equipo no está experimentando el problema.



Si el contador de Bytes residentes de caché de Memory\System en el Monitor de rendimiento muestra una tendencia al alza en el tiempo, el equipo está experimentando el problema, tal como se muestra en la figura 3.

Figura 3. Salida de Monitor de rendimiento de ejemplo en el que el equipo experimenta el problema con el tiempo.

Requisitos de reinicio

No es necesario que reinicie el equipo al instalar, desinstalar o utilizar este servicio.
Si es usted leyendo este artículo porque está trabajando con un cliente que cree que se ven afectados por este problema, siga estos pasos para ayudar a resolver el problema.
  1. Compruebe que datos de poolmon, perfmon o salida de RamMap del cliente confirman que la caché de archivos de sistema consume la mayor parte de la RAM física, como se describió anteriormente.
  2. Para obtener el servicio de caché dinámica de Windows, descargue aquí.
  3. Algunos valores del registro de memoria caché dinámica son los siguientes:

    Servidores de archivo desea tratar de 1GB.
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
    "MaxSystemCacheMBytes"=dword:00000400
    "MinSystemCacheMBytes"=dword:00000064
    "SampleIntervalSecs"=dword:0000003c
    "CacheUpdateThresholdMBytes"=dword:00000064

    Exchange 2007, puede que desee intentar 500 MB:
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
    "MaxSystemCacheMBytes"=dword:000001F4
    "MinSystemCacheMBytes"=dword:00000064
    "SampleIntervalSecs"=dword:0000003c
    "CacheUpdateThresholdMBytes"=dword:00000064

    SQL 2005 y superior, en el pasado al trabajar con SQL EE, han utilizado 2 GB:
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
    "MaxSystemCacheMBytes"=dword:000007D0
    "MinSystemCacheMBytes"=dword:00000064
    "SampleIntervalSecs"=dword:0000003c
    "CacheUpdateThresholdMBytes"=dword:00000064

Más información


Para evitar este problema, utilice la función GetSystemFileCacheSize API y la función SetSystemFileCacheSize API para establecer el valor de tamaño máximo o mínimo de los conjuntos de trabajo de la caché de archivos de sistema. El uso de estas funciones es el único método admitido para restringir el consumo de memoria física por la caché de archivos de sistema.

El servicio de memoria caché dinámica de Microsoft Windows es un servicio de ejemplo que muestra una estrategia para utilizar estas API para minimizar los efectos de este problema.

Instalar y utilizar el servicio de caché dinámica de Microsoft no hace excluye del soporte Microsoft Windows. Este servicio y su código fuente se proporcionan como un ejemplo de cómo utilizar las API de Microsoft para reducir el crecimiento de la caché del sistema de archivos.

Puede obtener el servicio y el código fuente desde el siguiente sitio Web de Microsoft:
 

Recursos adicionales

Leer los capítulos 9 (administración de memoria) y 10 (Administrador de caché) de Windows Internals, la 5ª edición.

Entrada de Blog MEMORY MANAGEMENT (problemas de caché de sistema grande)

Problemas de copia de archivos grandes lenta de blog

Límites de memoria para las versiones de Windows

976618 experimenta problemas de rendimiento en aplicaciones y servicios cuando la caché de archivos de sistema consume la mayor parte de la RAM física

918483 cómo reducir la paginación de la memoria de grupo de búfer en la versión de 64 bits de SQL Server

895932 cosas a considerar antes de habilitar el modo de caché del sistema en Windows XP

232271 cómo optimizar el uso del registro de Windows NT Server

837331 acerca de administrador de caché en Windows Server 2003

http://technet2.microsoft.com/windowsserver/en/library/EFA621BD-A031-4461-9E72-59197A7507B61033.mspx

LargeSystemCache TechNet tema

Entrada de RamMap Blog

Estado


Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".