Ejercicio 1: Identificación de procesos con grandes conjuntos de trabajo
La metodología utilizada para analizar los datos puede adoptar varios enfoques y difiere en función de las circunstancias en las que se inició la investigación. En este ejercicio se describen y presentan algunas metodologías de ejemplo junto con las distintas vistas presentadas por diversos arreglos de columnas.
Los datos a los que se hace referencia como el conjunto residente son el conjunto de páginas que residen actualmente en memoria física (RAM). El conjunto residente es una instantánea del estado de memoria actual al final de una captura de seguimiento con Windows Performance Recorder (WPR) o la evaluación de memoria del Kit de herramientas de evaluación. No es posible recopilar varias instantáneas en un único seguimiento.
Los conjuntos residentes proporcionan una instantánea holística e instantánea de la composición de memoria en el sistema. Las investigaciones en el análisis del conjunto residente se realizan normalmente por los siguientes motivos:
Para comprender el uso de memoria física, especialmente cuando el uso de memoria física es mayor de lo esperado.
Para comprender los orígenes del conjunto de trabajo privado del proceso, especialmente cuando el conjunto de trabajo privado del proceso es mayor de lo esperado.
Problemas de capacidad de respuesta del sistema debido a la actividad de paginación.
Paso 1: Recopilar datos mediante el kit de herramientas de evaluación
Windows Assessment Toolkit contiene una prueba para medir la superficie de memoria después del arranque. Puede usar los resultados de la evaluación de superficie de memoria para recopilar una línea base de la carga previa del software de imagen. Muchos procesos y servicios siempre están en uso y ocupan memoria. Esta evaluación le ayuda a ver cómo afectan los controladores y las aplicaciones (que siempre se ejecutan) al proceso de arranque.
Abra la Consola de evaluación de Windows (WAC) en el menú Inicio .
Abra el menú Opciones y seleccione Nuevo trabajo...
Escriba MemoryTest como nombre del trabajo.
Seleccione Crear un trabajo personalizado.
Haga clic en Agregar evaluaciones.
- Para agregar la evaluación de superficie de memoria , haga clic en el símbolo "+"
Haga clic en la evaluación de superficie de memoria recién agregada para especificar la configuración de prueba.
Anule la selección Use recommended settings (Usar la configuración recomendada) y seleccione Quick Run (Ejecución rápida ) para la configuración.
- La ejecución rápida permite que la prueba se complete en una cantidad de tiempo más corta a costa de la precisión de los datos.
Con La ejecución rápida seleccionada, tiene dos opciones:
Empaquete el trabajo para crear una carpeta que tenga todos los recursos de prueba y cópielo en otro sistema de prueba. (Haga clic en el botón Paquete... en la esquina inferior derecha para elegir esta opción).
Ejecute el trabajo directamente en el sistema. (Haga clic en el botón Ejecutar de la esquina inferior derecha para elegir esta opción).
Esto reinicia el sistema para recopilar un seguimiento.
Esta prueba puede tardar entre 15 y 20 minutos en completarse.
Queremos la opción Ejecutar .
Paso 2: Visualizar los resultados de la evaluación de la superficie de memoria mediante WAC
Una vez finalizada la evaluación, puede abrir el archivo XML de resultados que contiene un resumen del uso de memoria en el sistema.
Paso 2.1: Abrir el informe de memoria
En WAC, abra el menú Opciones y seleccione Abrir resultados...
- También puede presionar CTRL+R en el teclado.
Haga clic en el botón Examinar... .
Vaya a la carpeta donde almacenó la evaluación que creó en el paso 1.
Abra la evaluación que creó en el paso 1.
El informe contiene diferentes categorías para ayudarle a comprender las contribuciones del controlador y del proceso a la superficie de memoria general.
El informe debe tener un aspecto similar al siguiente.
Tómese el tiempo para familiarizarse con el informe examinando las categorías De páginas privadas de controlador y proceso .
En el ejemplo anterior, se usan 1487 MB de memoria fuera de 4 GB de RAM física.
Memoria en uso = Procesar conjuntos de trabajo + memoria no paginada + páginas modificadas
Memoria disponible = Memoria en espera + memoria libre
En el ejemplo anterior, los mayores consumidores de uso de memoria son las asignaciones de controladores con 267 MB para no paginados y 613 MB para las páginas privadas de procesos (conjuntos de trabajo privados).
Para obtener más información sobre las métricas, vea el tema Resultados de la evaluación de superficie de memoria en MSDN.
Paso 2.2: Revisión de las asignaciones no paginadas del controlador
Esta métrica es similar a las asignaciones paginadas, salvo que estas asignaciones usan memoria física que no se puede paginar. Esto refleja la memoria física anclada y, por tanto, no está disponible para la memoria paginada o el uso de otros procesos y servicios. La adquisición de demasiada memoria no paginada reduce la cantidad de memoria que puede usar la memoria respaldada.
Expanda la categoría Asignaciones no paginadas del controlador haciendo clic en la flecha de la izquierda.
Expanda la categoría DriverLockedSystemPages .
- Esta es la memoria cargada desde la memoria paginada y, a continuación, bloqueada por el controlador hasta que ya no es útil.
Identifique el controlador con el mayor uso de memoria.
Puede influir en esta métrica intercambiando los controladores de hardware o software que tienen requisitos de memoria inferiores.
El proveedor del controlador tiene la mayor influencia sobre esta métrica por la forma en que se ha diseñado el controlador. Busque asignaciones de memoria grandes en los resultados presentados en WAC. Además, los proveedores de controladores pueden proporcionar seguimientos de rendimiento (almacenados en el mismo directorio que los resultados de la evaluación y se pueden analizar con WPA) de esta evaluación para encontrar áreas de asignación de memoria intensiva que son candidatas para investigaciones para reducir el uso de memoria.
Paso 2.3: Revisión de los conjuntos de trabajo privados del proceso
Los usuarios más grandes de la superficie de memoria general son aplicaciones que siempre se pueden ejecutar en segundo plano sin el conocimiento del usuario. Para ver la cantidad de memoria que usan los procesos, puede usar la categoría Procesar páginas privadas del informe.
Expanda la categoría Procesar páginas privadas haciendo clic en la flecha de la izquierda.
Expanda la categoría Activo . En la lista se muestran los archivos binarios y su uso de memoria activa.
La vista debe tener un aspecto similar al siguiente:
Identifique el proceso que usa la mayor cantidad de memoria.
Puede influir en esta métrica reduciendo el número de aplicaciones "ejecutar siempre", que son aplicaciones en la carpeta Ejecutar clave del Registro o Inicio . Analice el impacto de las aplicaciones agregadas.
Los proveedores de controladores y software tienen la mayor influencia sobre esta métrica por la forma en que su código está diseñado. Busque asignaciones de memoria de gran tamaño en los resultados presentados en WAC. Además, a los proveedores de software se les pueden proporcionar seguimientos de rendimiento (almacenados en el mismo directorio que los resultados de la evaluación) de esta evaluación para encontrar áreas de asignaciones de memoria intensivas que son candidatas para investigaciones para reducir el uso de memoria. Análisis cuidadosos de asignaciones, incluso pequeñas, puede ayudar al desarrollador a encontrar asignaciones que suman.
Paso 3: Recopilar datos del conjunto residente mediante WPR
En los pasos 1 y 2, ha aprendido a recopilar seguimientos de memoria mediante la evaluación de la superficie de memoria del kit de herramientas de evaluación . Esta evaluación solo puede capturar un seguimiento para el escenario de arranque. Puede capturar seguimientos para cualquier escenario (inicio de la aplicación, exploración web, etc.) mediante windows Performance Recorder (WPR)
Siga estos pasos para recopilar un seguimiento con los datos del conjunto residente.
Abra Windows Performance Recorder en el menú Inicio .
Seleccione los perfiles de grabación "Evaluación de prioridades de primer nivel" y "Análisis de conjuntos residentes", pero mantenga los valores predeterminados para las otras opciones.
Haga clic en Iniciar y espere unos segundos.
Haga clic en Guardar y guarde el seguimiento de ETL en el disco.
Ahora tiene una instantánea de la composición de memoria del sistema.
Paso 4: Interpretar los datos del conjunto residente mediante WPA
Utilice este procedimiento:
Inicie Windows Analizador de rendimiento desde el menú Inicio.
Abra el seguimiento ETL que acaba de recopilar (menú Archivo , Abrir...).
Expanda el conjunto de memoria en el Explorador de Graph.
Arrastre y coloque el gráfico Conjunto residente en la pestaña Análisis.
La vista debe tener un aspecto similar al siguiente:
Revise cómo se presentan los datos. Estas son algunas definiciones de las columnas más útiles para realizar el análisis de nivel superior:
Columna | Definición |
---|---|
MMList | Lista de administración de memoria que contiene las páginas.
|
Process | Nombre del proceso que es el propietario de las páginas. Esta información solo está disponible para las páginas privadas del proceso. Incluso si no se comparten, todas las páginas que se pueden compartir están asociadas al proceso "Desconocido" (-1). |
Descripción | El valor representado varía en función de la categoría de página. Por ejemplo:
|
Categoría de página | El tipo de datos contenidos en la página como se define a continuación. Algunas de las categorías posibles son:
|
Tamaño (MB) | Tamaño total de las páginas agregadas en cada categoría. |
Paso 6: Identificar los conjuntos de trabajo de procesos que afectan a la superficie de memoria
Los datos del conjunto residente se pueden mostrar de muchas maneras diferentes en función de los arreglos de columnas de la tabla de resumen. La tabla de resumen tiene varias disposiciones de columna predefinidas que puede usar como puntos de partida para una investigación.
Seleccione el valor preestablecido Procesar conjunto de trabajo privado .
Expanda el grupo MMList activo .
Céntrese en la categoría Activo , ya que es lo que afecta actualmente al uso de memoria.
Las páginas en espera podrían liberarse bajo presión de memoria.
Las páginas modificadas se pueden escribir en el disco y liberarse.
Para ordenar por tamaño, haga clic en el encabezado de columna Tamaño (MB ).
Identifique los procesos con el mayor uso. Es posible que vea N/A y "Desconocido (-1)" como nombres de proceso.
N/A contiene páginas que no están asociadas a ningún proceso, como la memoria del grupo de controladores.
"Desconocido (-1)" contiene páginas que se pueden compartir.
Expanda los procesos para ver la categoría de página.
Ahora puede ver la composición del conjunto de trabajo del proceso en la ilustración siguiente.
Las categorías principales deben ser VirtualAlloc o Win32Heap, que analizaremos en el ejercicio 2.
En el ejemplo siguiente, SearchIndexer.exe usa 21,7 MB de memoria activa a través de asignaciones de montón y 12,4 MB a través de llamadas API de VirtualAlloc .
Céntrese en los procesos de terceros y determine si deben iniciarse en el arranque como parte del software precargado. Como desarrollador, debe analizar las asignaciones dinámicas que realiza el proceso para comprender dónde se pueden realizar optimizaciones.