Documento técnico: Análisis de la caché RAM de Citrix Provisioning con Overflow

Este documento técnico proporciona información sobre cómo determinar con precisión el tamaño de la memoria caché RAM cuando se utiliza la función de memoria caché RAM con desbordamiento en el disco.

La memoria caché de RAM con desbordamiento en el disco es una función de Citrix Provisioning (PVS) en la que las escrituras en disco virtual se escriben primero en la RAM del grupo no paginado de Windows.
Una vez que el tamaño de la caché RAM especificado por el usuario ha alcanzado el tamaño especificado, PVS vacía el contenido de la caché RAM en el disco para crear espacio para nuevos datos.
El tamaño de la caché de RAM fluctúa según el patrón de carga de trabajo y otras variaciones. PoolMon es una herramienta para tomar una instantánea del tamaño actual de uso de caché RAM buscando la etiqueta de agrupación VhdR.

Para obtener información adicional sobre esta función de PVS, consulte aquí sobre el uso de la memoria caché RAM con desbordamiento.

Importante

Las herramientas que se describen en este artículo son para administradores con conocimientos avanzados de Provisioning Services. Esta información se puede usar para ayudar a depurar problemas relacionados con el rendimiento que van más allá del uso de herramientas y procesos de uso común, incluido el Process Monitor (ProcMon). Con esta información, comprenderá mejor cómo funciona el controlador PVS.

Monitor de pool de memoria

PoolMon (poolmon.exe) hace referencia a la herramienta Memory Pool Monitor de Microsoft.
Se utiliza para mostrar datos (asignaciones de memoria de los grupos de kernel paginados y no paginados del sistema, y los grupos de memoria utilizados para las sesiones de Terminal Services) recopilados por un sistema operativo. Estos datos se agrupan por la etiqueta de asignación de grupos.

Con la memoria de grupo no paginada, puede utilizar la herramienta PoolMon para verificar la existencia de la etiqueta de agrupación indicada por VhdR. El vHDR se usa para la asignación de memoria caché RAM. Esta etiqueta, junto con la etiqueta de grupo vHDL, es útil a la hora de crear scripts que ayuden a analizar los datos asociados a la memoria caché de RAM en la memoria del grupo no paginada.

Sugerencia

Los desarrolladores y evaluadores suelen utilizar PoolMon para detectar fugas de memoria cuando se crea un controlador, se modifica el código del controlador o para realizar una prueba de esfuerzo del controlador.
PoolMon también se puede usar en cada etapa del proceso de prueba para verificar el patrón de asignación de memoria y las operaciones libres de un controlador, incluido el uso para determinar cuánta memoria de grupo está mediante el controlador en un momento dado. Para obtener más información sobre el uso de Memory Pool Monitor, consulte la documentación de Microsoft.

Usar el Analizador de rendimiento de Windows

El Analizador de rendimiento de Windows (WPA) es una herramienta que le permite crear gráficos y tablas de datos relacionados con los eventos (específicamente, el seguimiento de eventos para Windows) que graba el Grabador de rendimiento de Windows (WPR).
Utilice el WPA para identificar cuellos de botella en el rendimiento al depurar problemas relacionados con el controlador PVS, la pila de almacenamiento y los problemas relacionados con el rendimiento que se producen al escribir en el disco VHDX.
Con estas herramientas, puede ejecutar evaluaciones y abrir cualquier archivo de registro de seguimiento de eventos para su análisis. Consulte el sitio de Microsoft Developer Network para obtener más información sobre el Analizador de rendimiento de Windows.

Cómo funciona el Analizador de rendimiento de Windows con Provisioning Services

PVS genera eventos que captura el mecanismo de seguimiento de eventos para Windows (ETW). Esta funcionalidad proporciona una forma de rastrear y registrar los eventos que generan las aplicaciones de modo usuario y los controladores de modo kernel. ETW se implementa en el sistema operativo Windows y proporciona una manera fácil para que los desarrolladores usen un conjunto de funciones de seguimiento de eventos. Para obtener más información, consulte aquí.

Instalación del Analizador de rendimiento de Windows

Es necesario instalar WPA en la imagen maestra.

El WPA forma parte del SDK más reciente para el sistema operativo de escritorio Windows. Puede instalar de forma selectiva el kit de herramientas de rendimiento, que incluye tanto WPA como WPR:

SDK de Windows

Después de instalar el WPA y el WPR, utilice el WPR para simular la actividad de E/S de archivos y discos de PVS. Una vez creado este tráfico, analice los datos mediante el WPA. Para realizar estas acciones:

  1. Inicie el WPR en el dispositivo de destino y haga clic en Agregar perfiles .
  2. En la pantalla Agregar perfiles, busque la plantilla o el perfil específico de PVS. Esto le permite recibir los eventos generados por el proveedor de eventos de PVS. El perfil que se va a utilizar está disponible aquí. Después de importar el perfil, regrese a la pantalla WPR, seleccione las opciones adicionales que desee analizar y haga clic en el botón Iniciar :

    WPR

Tras añadir las opciones y hacer clic en Iniciar , puede simular la actividad de PVS.
En este ejemplo, se crea una nueva memoria caché de escritura con un búfer de memoria pequeño (128 MB). Se copia un C:\Users\User\Documents\test.binarchivo más grande (279 MB) para obligar al controlador PVS a escribir algunos datos en el grupo no paginado y comprobar qué ocurre cuando se produce una conmutación por error, que comienza a escribir en el disco local (por ejemplo,D:\vdiskdif.vhdx). Después de copiar el archivo y forzar al búfer a superar su capacidad, puede detener el proceso de captura en WPR y abrir los resultados con WPA.

  1. Mediante el WPA, abra el Explorador de gráficos, expanda Actividad del sistema y seleccione Eventos genéricos.
    Utilice la siguiente pantalla como ejemplo para ver el contenido de las secciones WriteData y WriteRAMData. Esta información muestra el recuento exacto de archivos en los que se C:\vDisk (2419 files)está escribiendo , incluido el archivo VHDX de la unidad D: (348 archivos):

    WPR

Sugerencia

WriteData es inferior al valor que se muestra porque está almacenado en caché en la RAM y no se ha vaciado en el disco.

  1. Vuelva a la pantalla del Explorador de gráficos y expanda File IO y Count by Type.
    En la imagen siguiente se muestra la reducción de la E/S (recuento de archivos) y el tiempo que transcurre entre la escritura en C:\Users\User\Documents\test.binel archivo D:\vdiskdif.vhdxde caché de escritura y el que se desborda.
    Con estos datos, puede ver los posibles cuellos de botella en el rendimiento y descartar de manera efectiva que el controlador del filtro PVS sea un problema:

    WPR

  2. Tras ver el recuento de archivos y el tiempo transcurrido entre escrituras (entre el archivo de registro y la caché de escritura acumulada), puede avanzar en el proceso de depuración para entender dónde se escriben los datos inicialmente (y dónde terminan) mediante los desplazamientos del disco.
    En el Analizador de rendimiento de Windows, abra el Explorador de gráficos, expanda Actividad del sistema y seleccione Eventos genéricos .
    Modifique la vista de columnas para permitir que la herramienta WPA muestre la transición de datos en las distintas capas de almacenamiento.
    Para continuar con la depuración, regrese al entorno de PVS y establezca el búfer de caché RAM en 0 MB y, a continuación, vuelva a ejecutar las herramientas de grabador (WPR) y analizador (WPA).
    La siguiente imagen muestra cómo se produce la transferencia al disco:

    WPR

Documento técnico: Análisis de la caché RAM de Citrix Provisioning con Overflow