Barcelona Activa

Transcripción

Barcelona Activa
Barcelona Activa - FASTER
P. 1
Barcelona Activa
P. 2
Barcelona Activa
P. 3
Barcelona Activa
P. 4
Análisis de Rendimiento en Windows
Este curso denominado “Faster” está basado en las ideas de análisis de rendimiento
proporcionadas en la bibliografía citada en la sección de Referencia, y en algunos de los Blogs
públicos de Microsoft PFE.
En especial :
http://blogs.technet.com/b/askpfeplat/
http://blogs.technet.com/b/askperf/
Y también la herramienta PAL (descrita en el capítulo homónimo)
© Juan Carlos Ruiz López, Enero y Abril de 2015.
P. 5
Ref : Bibliografía
Una selección de los libros disponibles sobre el tema.
P. 6
DEMO : Cronometrar una tarea
P. 7
¿ Qué hay en ejecución ?
Las dos primeras utilidades son parte de Windows. Ejecutarlas directamente, están en el PATH.
TASKLIST.EXE es una herramienta de línea de comandos : Ejecutarla desde CMD.EXE o PowerShell.exe. Probar
también TASKLIST /?
Ctrl-Alt-Del permite llamar directamente a Task Manager. Aunque vieja, esta herramienta es útil algunas veces.
Las dos últimas pertenecen a la serie de SysInternals. Deben descargarse de http://www.sysinternals.com
(Ya están descargadas en C:\Faster\Tools\Sysinternals, pero probablemente haya una versión más nueva en
Internet, pues se actualizan frecuentemente).
P. 8
Servicios y Procesos
P. 9
DEMO : ¿Qué ha pasado ?
P. 10
Principales Consumidores de Recursos
P. 11
Inventario de Hardware
P. 12
Procesos con más consumo
P. 13
Herramientas Variadas
MSCONFIG es parte del sistema operativo.
Autoruns debe descargarse de www.sysinternals.com
P. 14
Lección 1 : Performance Monitor
Este capítulo describe Performance Monitor, la herramienta standard para capturar
objetivamente contadores de rendimiento en el entorno Windows.
P. 15
Performance Monitor : Componentes
Performance Monitor incluye varios componentes :
1. Un objeto COM que se encarga de toda la captura y de mostrarla en pantalla
2. Una consola MMC que incluye y muestra el objeto COM previo
3. Un ejecutable para llamar fácilmente a la consola
4. Los ficheros necesarios : DLLs, EXEs…
5. Un servicio de Windows que permite llamar a Perfmon de modo programado.
El nuevo Perfmon incluye nueva funcionalidad. Por ello, ha sido subdividido en varias partes :
“System Monitor” (para mostrar los contadores), “Performance Logs and Alerts” (para crear logs y
alertas), Reliability Monitor, y algunos más.
Sin embargo, muchos documentos en Internet se refieren indistintamente a Perfmon, SysMon o
System Monitor.
P. 16
Dos versiones de Perfmon
P. 17
DEMO : Opciones en Perfmon
P. 18
Ref : Opciones en Perfmon
Las opciones disponibles se han añadido en el nuevo PERFMON.EXE, no en Perfmon.MSC
Estas opciones no están documentadas en el propio ejecutable, mediante PERFMON.EXE /? O flags
similares como (-h, /h, /help). Cualquier parámetro inválido devolverá “The Parameter is Incorrect”.
“Help Perfmon” sugiere erróneamente usar PERFMON /?
Pero están documentadas formalmente en http://technet.microsoft.com/en-us/library/cc731067.aspx , y
muchos otros blogs (suponiendo saber por dónde comenzar)
P. 19
DEMO : Captura Básica a pantalla
Comencemos por una simple captura a pantalla.
Contadores para el ejemplo : Usar Memory, Available Bytes. Su significado será descrito más
adelante.
P. 20
Nomenclatura de los Contadores
Todos los contadores, no importa quién los vaya a usar, deben usar esta nomenclatura standard.
La parte del \\servidor puede ser omitida si nos referimos a la máquina local. (Pero la primera barra
invertida debe mantenerse)
La parte de la Instancia es normalmente obligatoria, cuando hay varias instancias. En el caso de que
el objeto no mantenga instancias separadas, no se indica (ni los paréntesis)
Cualquiera de las 4 partes puede contener espacios en blanco; el nombre completo del contador se
tendrá que especificar entre comillas en general. También pueden contener caracteres que no son letras,
como el porcentaje (“%”), punto (“.”) o paréntesis “( )”.
P. 21
Añadiendo contadores
La opción de añadir contadores (“+”) debe seguir, por supuesto, la nomenclatura descrita.
Cada uno de los 4 campos necesarios (Servidor, Objeto, Instancia, Contador) están distribuidos por los diversos
diálogos. Buscarlos en el gráfico.
Recordar que la Instancia puede ser opcional, algunos Objetos no la tienen. Por ejemplo, “Memory” no tiene
instancias separadas. En ese caso, el diálogo de Instancias se ve vacío, y el Objeto no especificará la instancia (ni sus
paréntesis)
No hay que añadir las comillas cuando se construyen contadores mediante Perfmon.
Al elegir las instancias, aparecen dos opciones especiales, mostradas al principio de la lista :
“_Total” (normalmente, una suma o agregación de los valores de todas las instancias, TODOS JUNTOS)
“<All Instances>” , lo que implica capturar todas las instancias SEPARADAMENTE. Esto se traduce como “(*)”
en el campo de Instancia.
Cuidado, no mezclar instancias individuales con el Total… Y mucha atención, pues “All Instances” también incluye
“_Total”
P. 22
DEMO : Nomenclatura
Capturando estos 2 contadores a pantalla.
P. 23
Otras características de Perfmon
En esta breve sesión no dará tiempo a ver todas estas características.
Si el tema es de interés, contactar con [email protected] para organizar una sesión completa
“Faster” (normalmente de 3 días)
P. 24
¿ Contadores en Inglés ?
Existe una herramienta de conversión llamada PLT (Performance Log Translator), totalmente
NO soportada….
Disponible en C:\Faster\Tools\PLT.
https://pal.codeplex.com/releases/view/21261
P. 25
Lección 2 : Discos
P. 26
Un “Disco” es …
Estamos interesados en el punto de vista del Sistema Operativo, y las aplicaciones que en él se ejecutan.
Un “Disco” (Logical Disk) es cualquier dispositivo que se presenta a Windows, y puede almacenar información
estructurada en él.
Ofrece una colección secuencial de sectores lógicos; puede almacenar información en ellos. Puede ser formateado
(como FAT, NTFS…), y permite que la información en él almacenada puede ser leída, incluso después de ser apagado
y encendido.
Cada disco es una entidad separada, e identificada por una LUN. Por supuesto, un disco físico puede contener
varias unidades lógicas.
Por supuesto que este punto de vista es totalmente lógico y no físico… pero es lo que emplean la mayoría de
aplicaciones.
Si el disco es una superficie magnética, con circuitos integrados, partes móviles, con o sin RAID, o una SAN
enorme… no nos interesa a priori. Nos importa :



Su capacidad (Cantidad de bytes que caben)
Fiabilidad (ausencia de errores, opciones para corregirlos)
Rapidez (cuánto tiempo se tarda en leer o escribir en él)
Si la máquina es virtual, quizás el disco sea una partición física u otro drive ( por ejemplo un disco “Pass-Through”),
o implementado como un fichero (DSK, VHDx…)…
No nos importa la implementación, sino su rendimiento.
P. 27
Defragmentación
Get-ScheduledTask ScheduledDefrag | fl *
Get-ScheduledTask ScheduledDefrag | Select-Object
#
(and then MaintenanceSettings)
-expand settings
P. 28
Ref : Algunas herramientas de defragmentación
P. 29
Defragmentación y geometría
P. 30
ZBR
P. 31
Lección 3 : Memoria
P. 32
Límites en 64 bits
Este es el máximo rango de direcciones que se puede obtener en un sistema de 64 bits.
Es memoria física. Esto supone que el procesador, el chipset, la placa base… cuentan con las
64 líneas necesarias.
En el mundo real, no se instalará toda la RAM posible…
Veremos luego más diferencias en el nivel lógico, si el Sistema Operativo también es de 64 bits,
y hace buen uso del hardware.
[System.Math]::Pow(2,64) / 1GB
P. 33
Contando Memoria Física
Varias maneras de mostrar la RAM instalada.
El total de Memoria Física ya no es una constante ! Podemos tener memoria de “hot-Swap”, o
memoria dinámica en una máquina virtual.
P. 34
Memoria física - Herramientas
RAMMap y Process Explorer pueden hallarse en www.sysinternals.com y también ya
descargadas en C:\Faster\Tools\SysInternals.
Task Manager es parte del sistema operativo (suponiendo que no se haya sustituido por
Process Explorer)
P. 35
Virtual Memory Manager
VMM, “Virtual Memory Manager”, o Gestor de Memoria Virtual, es un componente vital del núcleo (Kernel) del
sistema operativo. Reside en NTOSKRNL.EXE.
Es un componente de software (código) que se ejecuta en modo Kernel. Coopera con la CPU y el hardware para
poder ofrecer memoria virtual a los procesos.
La distinción entre el nivel físico (hardware) y el software es importante. Sólo el Kernel puede acceder al hardware.
El código se ejecuta en dos modos : User y Kernel. Los procesos se ejecutan en modo Usuario, y no pueden
acceder directamente al hardware. Deben pedírselo al sistema operativo a través de APIs bien definidas.
Al arrancar el sistema, es responsabilidad del Kernel el inicializar el VMM.
Entonces se enumeran todos los recursos físicos disponibles : RAM, ROM, Pagefiles.
El VMM crea un mapa (una tabla) con todos los rangos de memoria virtual disponible, y en qué estado y lugar físico
residen. Y se la ofrece a los procesos.
Cada vez que un proceso pida memoria se empleará esta tabla, que es actualizada constantemente.
El VMM convierte memoria física a virtual… pero también al revés. Si un acceso a memoria virtual no tiene una
representación física en ese momento, se encargará de buscarla. Para ello hará falta colaboración de la CPU y
Chipset, como veremos.
Las peticiones VirtualAlloc serán servidas por el VMM, retornando la memoria al proceso que la solicita.
P. 36
DEMO : VM Tools
VMMap, Process Monitor y Process Explorer pueden hallarse en www.sysinternals.com, y
también ya descargadas en C:\Faster\Tools\SysInternals.
Task Manager y TASKLIST son parte del sistema operativo.
Una posibilidad es sustituir el viejo Task Manager por Process Explorer. Se hace desde Process
Explorer, Options, “Replace Task Manager”
P. 37
Lección 4 : Procesos
P. 38
Procesos – Recursos solicitados
Todo proceso tiene que pedir al sistema operativo los recursos que necesite. Generalmente estos 3 :
1. Memoria. Como vimos en el capítulo asociado, es “Memoria Virtual”. El sistema concederá la memoria virtual
solicitada al proceso. En un momento particular del tiempo, parte de esa memoria residirá físicamente en RAM (el
“Working Process” actual de ese proceso)
2. Handles. Un “handle” es un identificador de un recurso, como por ejemplo un Fichero, Carpeta, Ventana… el
proceso se referirá a él usando dicho identificador (un número), en vez de un nombre.
Esto hace que el código sea más limpio, con una única referencia al nombre del recuso al abrirlo. También permite
renombrar los recursos.
Un proceso pedirá todos los handles que necesite… pero es extremadamente importante que cada handle que ya
no se use sea cerrado (y devuelto al sistema), ya que son un valioso recurso.
3. Threads. Un “thread” es la entidad usada por el Scheduler para ejecutar múltiples tareas en una CPU. Es similar
a los “Subprocesos” de otros sistemas operativos, pero con menor overhead. Cada thread puede usar una identidad
diferente (“impersonation”), pero todas las threads del mismo proceso comparten el espacio de memoria.
Un proceso puede crear todas las threads que necesite, pero las que ya no hagan falta deben ser terminadas y
liberadas.
Recordar que los Procesos se ejecutan en USER MODE (modo usuario)
P. 39
Procesos – Métricas de Recursos
Estos son los 4 contadores para los recursos básicos
P. 40
Procesos – Contadores de I/O
Data Ops/Sec son las operaciones clásicas de lectura y escritura.
Other Ops/Sec son las operaciones de control : Comprobar permisos, propiedades…
P. 41
Lección 5 : Red
P. 42
Contadores de Red
P. 43
Teaming
P. 44
Lección 6 : Procesador
P. 45
Modos del Procesador
P. 46
Pregunta – Modos del Procesador
P. 47
Procesador -Contadores
P. 48
¿Varios procesadores ?
P. 49
Información sobre Cores y NUMA
COREINFO puede ser descargada de www.sysinternals.com.
También está preparada en C:\Faster\Tools\Sysinternals.
El resto viene con el sistema.
P. 50
Lección 7 : PAL Demo
P. 51
¿ Qué es PAL ?
P. 52
PAL – Versiones y Requerimientos
Todas las últimas versiones de PAL son scripts en PowerShell. Se pueden descargar de
http://pal.codeplex.com.
El kit de PAL y algunos de sus requerimientos están ya descargados en C:\Faster\Tools\PAL.
Las primeras versiones de PAL (1.x) fueron escritas en VBS, pero ya no se mantienen. La última fue la v
1.3.9, y requería Windows en inglés, Log Parser, Office Web Components (owc11), y .NET 2.0.
Sin embargo, recomendamos usar la versión en PowerShell.
P. 53
DEMO : PAL
P. 54
Ref : Bibliografía
Una selección de los libros disponibles sobre el tema.
P. 55
*
P. 56
P. 57

Documentos relacionados