Compartir a través de


diskidlehistogram

Esta acción genera un histograma que muestra toda la actividad del disco y el tiempo de inactividad.

-a diskidlehistogram [-disknum <n>] [-buckets B1 B2 ... Bn] [-idletimeout T1 T2 ... Tn] [-idletheshold <t>] [-spindownOverhead [t]] [-spinupOverhead [t]] [-exc_file File1 File2 ... FileN] [-exc_filestr String1 String2 ... StringN] [-exc_filere <regex>]

Opciones

-disknum<n>
n indica el número de disco (índice de disco basado en 0). El valor predeterminado es generar histogramas para todos los discos.

-bucketsB1 B2 ... Bn
Los argumentos indican intervalos diferentes de longitud inactiva, en segundos. Los cubos predeterminados son los siguientes:

  • [0 s, 1 s]

  • [1 s, 5 s]

  • [5 s, 60 s]

  • [60 s, 180 s]

  • [180 s, 600 s]

  • [600 s, 900 s]

  • [900 s, 1200 s]

  • [1200 s, 1800 s]

  • [1800 s, +inf]

Un histograma inactivo de disco muestra la distribución del tiempo de inactividad del disco y el número de períodos de inactividad en distintos intervalos de longitud de período de inactividad, como se muestra en los valores de ejemplo de la tabla siguiente.

Menos de 1 segundo De 1 a 600 segundos Más de 600 segundos

Tiempo de inactividad

1000

1000

2000

Porcentaje del tiempo de inactividad total

25

25

50

Recuento de inactividad

90

5

5

Porcentaje del recuento total de inactividad

90

5

5

En la primera fila se muestran los cubos del histograma: diferentes intervalos de longitud inactiva.

La segunda fila muestra el tiempo de inactividad acumulado para cada depósito. Por ejemplo, el tiempo de inactividad acumulado para todos los períodos de inactividad inferiores a 1 segundo es de 1000 segundos.

La tercera fila calcula el porcentaje de tiempo de inactividad de cada depósito dividiendo el tiempo de inactividad de un cubo por el tiempo de inactividad total.

La cuarta fila es el recuento de períodos de inactividad capturados para cada depósito. En este ejemplo, hay 90 períodos de inactividad que duran menos de un segundo.

La última fila calcula el porcentaje de períodos de inactividad de cada depósito dividiendo el número de períodos de inactividad de un cubo por el número total de períodos de inactividad.

El comando siguiente generaría los cubos en la lista siguiente: -buckets 1s 5s 60s 180s:

  • [0, 1 s]

  • [1 s, 5 s]

  • [5 s, 60 s]

  • [60 s, 180 s]

  • [180 s, +inf]

-idletimeoutT1 T2 ... Tn
Los argumentos indican el tiempo de espera de inactividad, en segundos. Los valores predeterminados son 5, 60, 180, 600 y 1800.

-idletheshold<t>
Los argumentos indican el umbral de inactividad, en segundos. Los períodos de inactividad más cortos que este umbral se omiten.

-spindownOverhead[t]
Si no especifica un argumento, el valor predeterminado es 0.

Con una secuencia de marcas de tiempo de E/S de disco y un tiempo de espera de inactividad especificado, puede calcular cuándo se reduciría el disco y cuánto tiempo puede permanecer en estado spun-down, como se muestra en la tabla siguiente.

Tiempo de espera, en segundos 5 60 180 600

Tiempo estimado de oportunidad de spindown, en segundos

3800

2000

1000

500

Recuento estimado de oportunidades de número de oportunidades

500

100

50

10

La primera fila muestra los valores de tiempo de espera de inactividad de interés para calcular el tiempo de inactividad. La segunda fila muestra el tiempo de espera total estimado correspondiente a cada tiempo de espera. En este ejemplo, un tiempo de espera de 5 segundos produjo el tiempo total de inactividad de 3800 segundos. La tercera fila muestra el número estimado de veces que el disco está inactivo para cada valor de tiempo de espera.

-spinupOverheadT
Si no especifica un argumento, el valor predeterminado es 0 segundos.

-exc_fileArchivo1 archivo1 ... FileN
Se excluyen los archivos que coinciden con las rutas de acceso de archivo completas proporcionadas. Debe especificar la ruta de acceso completa del archivo para cada archivo que desee excluir.

-exc_filestrString1 String2... StringN
Se excluyen los archivos que contienen una o varias de las cadenas proporcionadas.

-exc_filere<regx>
Se excluyen los archivos que coinciden con la expresión regular ATL proporcionada. Por ejemplo, puede omitir todos los archivos que terminan con .dll especificando la expresión ".*\.dll".

Nota Al definir una nueva línea, debe incluir un carácter devuelto. En lugar de usar \n, use \r\n. Al incluir ambos caracteres (retorno de carro = r; avance de línea = n), se crea un terminador de línea. Esto resulta útil al crear un archivo de interés de regiones .

Comentarios

Hay algunos archivos del sistema cuyos E/S de disco están en respuesta a las E/S de disco a otros archivos. Estos archivos del sistema incluyen lo siguiente:

  • $LogFiles

  • $Mft

  • $Bitmap

  • lastalive0.dat

  • lastalive1.dat

  • $UsnJrnl:$J

Puede ser difícil diferenciar qué E/S de disco a otros archivos provocan una E/S de disco determinada en los archivos del sistema anteriores. Por lo tanto, si desea ver el impacto de los archivos que ha excluido, también debe excluir estos archivos del sistema. Dado que estas E/S de disco de estos archivos del sistema están en respuesta a o "piggyback" en otras E/S de disco, no se espera que solo estos archivos del sistema cambien significativamente el histograma inactivo del disco.

La salida de esta acción se puede importar en una hoja de cálculo para ordenar y analizar. Se proporcionan dos métricas adicionales para la salida:

AvgIOInterval
Para un archivo determinado, este es el intervalo medio entre dos E/S posteriores a este archivo. Esta métrica puede ser engañosa si un archivo tiene intervalos de E/S pequeños, como intervalos de menos de 1 segundo. Incluso si este archivo también tiene intervalos de E/S grandes, como 30 minutos, el intervalo de E/S promedio puede ser mucho peor que otro archivo con intervalos de E/S cortos medianos, como 10 minutos. En este caso, puede usar -idlethreshold T para quitar períodos de inactividad de menos de 1 segundo del análisis.

MaxIOInterval
Para cada archivo, este es el intervalo máximo entre dos E/S posteriores a este archivo. La salida se ordena en función de esta métrica de forma predeterminada. Un archivo con un intervalo de E/S grande todavía puede tener E/S frecuentes en promedio.

Nota Use estas métricas y histogramas por archivo para obtener una imagen completa de la actividad del disco.

Evite perturntar los discos bajo estudio mediante un disco físico diferente (o un dispositivo como una unidad flash USB) para recopilar el seguimiento.

Ejemplo

En el ejemplo siguiente se muestra un uso típico de esta acción con parámetros predeterminados.

Xperf -i Trace.etl -a diskidlehistogram > output.csv

Recopile información sobre E/S de disco, así como información relacionada, como registry/cswitch/stacks, en caso de que se necesite un análisis más profundo. Compact_cswitch se puede usar para reducir el tamaño del archivo de seguimiento. En el ejemplo siguiente se muestra un conjunto de marcas Xperf recomendadas.

xperf -on dispatcher+PROC_THREAD+LOADER+CSWITCH+COMPACT_CSWITCH +registry+DISK_IO+DISK_IO_INIT+FILEIO -stackwalk cswitch+readythread+DiskReadInit+DiskWriteInit+DiskFlushInit -buffersize 1024
sleep <desired trace time in seconds> or run scenario
xperf -d trace.etl

Acciones de Xperf