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 pooltag 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 utilizar 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 Monitor de procesos (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. vHDR se utiliza para la asignación de caché RAM; esta etiqueta, junto con la vHDlpooltag, es útil al crear scripts para ayudar a analizar los datos asociados con la memoria caché RAM en la memoria de 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á utilizando 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:
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 llevar a cabo estas acciones:
- Inicie el WPR en el dispositivo de destino y haga clic en Agregar perfiles.
-
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. Tras importar el perfil, vuelva a la pantalla de WPR, seleccione las opciones adicionales que desee analizar y haga clic en el botón Inicio :
Después de agregar 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). Un archivo más grande (279 MB) se copia en C:\Users\User\Documents\test.bin para forzar al controlador PVS a escribir algunos datos en el grupo no paginado para verificar lo que sucede 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.
-
Mediante el WPA, abra el Explorador de gráficos, expanda Actividad del sistema y seleccione Eventos genéricos. A través de la siguiente pantalla como ejemplo, vea el contenido de las secciones WriteData y WriteRamData. Esta información muestra el recuento exacto de los archivos que se escriben en C:\vDisk (2419 archivos), incluido el archivo VHDX de la unidad D: (348 archivos):
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.
-
Vuelva a la pantalla del Explorador de gráficos y expanda File IO y Count by Type. La siguiente imagen ilustra la reducción de IO (recuento de archivos) y la duración del tiempo que tarda entre escribir en C:\Users\User\Documents\test.bin y el archivo de caché de escritura de desbordamiento ubicado en D:\vdiskdif.vhdx. Con estos datos, puede ver los posibles cuellos de botella de rendimiento y descartar efectivamente el controlador del filtro PVS como un problema:
-
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, amplíe la 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 ilustra cómo se produce el desbordamiento al disco: