Hacer comparativas del rendimiento de Persistent Disk en una VM Windows


En este documento se describe cómo medir el rendimiento de Persistent Disk en instancias de máquina virtual (VM) de Windows. En el caso de las máquinas virtuales Linux, consulta Hacer comparativas del rendimiento de Persistent Disk en una máquina virtual Linux.

Para medir las IOPS y el rendimiento de un disco en uso en una instancia en ejecución, ejecuta una prueba comparativa del sistema de archivos con la configuración prevista. Usa esta opción para probar una carga de trabajo realista sin perder el contenido de tu disco. Ten en cuenta que, al comparar el rendimiento del sistema de archivos en un disco, hay muchos factores específicos de tu entorno de desarrollo que pueden afectar a los resultados de la prueba comparativa, por lo que es posible que no alcances los límites de rendimiento del disco.

Para medir el rendimiento sin procesar de un disco persistente, haz una comparativa del dispositivo de bloque directamente. Usa esta opción para comparar el rendimiento del disco sin procesar con los límites de rendimiento del disco.

En las máquinas virtuales C4, Windows admite una profundidad máxima de 1024 por cola de envío de dispositivos. Cuando se llena una cola, Windows deja de enviar E/S hasta que la cola se haya vaciado parcialmente, lo que reduce significativamente el rendimiento. Para evitar que se active esta condición, te recomendamos que limites las cargas de trabajo de las pruebas comparativas a una profundidad de cola agregada de 1024 por volumen conectado.

Configurar el software de comparativas

Para comparar el rendimiento de Persistent Disk en máquinas virtuales Windows, usa DISKSPD.

  1. Conéctate a tu instancia de VM.

  2. Abre PowerShell y descarga la herramienta DISKSPD con el siguiente comando:

    $client = New-Object System.Net.WebClient
    $client.DownloadFile("https://github.com/Microsoft/diskspd/releases/latest/download/DiskSpd.zip","$env:temp\DiskSpd-download.zip")
    Expand-Archive -LiteralPath "$env:temp\DiskSpd-download.zip" C:\DISKSPD
    Get-ChildItem C:\DISKSPD
    

Comparar las IOPS y el rendimiento de un disco en una instancia de VM en ejecución

Para medir las IOPS y el rendimiento de una carga de trabajo realista en un disco activo de una instancia de VM en ejecución sin perder el contenido del disco, realiza una prueba comparativa con un nuevo directorio del sistema de archivos.

En los siguientes pasos, se da por hecho que el disco que se va a probar está montado como D: y que los comandos se ejecutan en una ventana de Símbolo del sistema (cmd.exe) que tiene privilegios de administrador:

  1. Conéctate a tu VM.

  2. Verifica la configuración del software de DISKSPD y cambia el directorio al binario de 64 bits:

    cd C:\DISKSPD\amd64
    
  3. Crea un archivo de 10 GB llamado DISKTEST.DAT en el disco:

    set TESTFILE=D:\DISKTEST.DAT
    diskspd -d0 -c10G %TESTFILE%
    
  4. Prueba el rendimiento de escritura realizando escrituras secuenciales con varias secuencias paralelas (16 o más), usando un tamaño de bloque de E/S de 1 MB y una profundidad de E/S de al menos 64:

    diskspd -d300 -b1M -o64 -Sh -w100 -t16 -si %TESTFILE%
    
  5. Prueba las IOPS de escritura realizando escrituras aleatorias con un tamaño de bloque de E/S de 4 KB y una profundidad de E/S de al menos 256:

    diskspd -d300 -b4K -o256 -Sh -w100 -r %TESTFILE%
    
  6. Prueba el rendimiento de lectura realizando lecturas secuenciales con varias secuencias paralelas (16 o más), con un tamaño de bloque de E/S de 1 MB y una profundidad de E/S de al menos 64:

    diskspd -d300 -b1M -o64 -Sh -t16 -si %TESTFILE%
    
  7. Prueba las IOPS de lectura realizando lecturas aleatorias con un tamaño de bloque de E/S de 4 KB y una profundidad de E/S de al menos 256:

    diskspd -d300 -b4K -o256 -Sh -r %TESTFILE%
    
  8. Limpieza:

    del %TESTFILE%
    

Hacer comparativas del rendimiento sin formato de Persistent Disk

Para medir el rendimiento de los volúmenes de Persistent Disk por sí solos fuera de tu entorno de desarrollo, prueba el rendimiento de lectura y escritura de un dispositivo de bloque en un Persistent Disk y una VM desechables.

  1. Crea y pon en marcha una instancia de VM.

  2. Añade un disco persistente a la instancia de VM que quieras usar como referencia.

  3. Conéctate a tu instancia de VM.

  4. Verifica la configuración del software de DISKSPD y cambia el directorio al binario de 64 bits:

    cd C:\DISKSPD\amd64
    
  5. Verifica que no haya particiones no reservadas en el disco. Introduce diskpart en una ventana elevada del símbolo del sistema.

    diskpart
    
  6. Lista los discos conectados a la VM:

    DISKPART> list disk
    

    En el resultado se muestra el disco de 1 TB que se acaba de crear, que es el disco 1 en el siguiente ejemplo:

      Disk ###  Status         Size     Free     Dyn  Gpt
      --------  -------------  -------  -------  ---  ---
      Disk 0    Online          120 GB  1024 KB        *
      Disk 1    Online         1024 GB  1023 GB        *
    
  7. Selecciona el disco que quieras analizar.

    DISKPART> select disk 1
    
  8. Lista las particiones del disco seleccionado.

    DISKPART> list partition
    
       Partition ###  Type              Size       Offset
       -------------  ----------------  --------   -------
       Partition 1    Reserved              15 MB    17 KB
       Partition 2    Primary             1024 GB    16 MB
    
  9. Seleccione la partición primaria 2:

    DISKPART> select partition 2
    
  10. Elimina la partición seleccionada:

    DISKPART> delete partition
    
  11. Salir de diskpart

    DISKPART> exit
    

Los pasos anteriores deben repetirse si el disco que quieres analizar tiene otras particiones además de la partición reservada. Cuando solo quede la partición reservada, sigue estos pasos:

  1. Una vez que hayas identificado el disco y verificado que no tiene particiones, asigna a la variable de entorno TESTDRIVE el valor '#' seguido del número del disco que quieras probar.

    C:/> set TESTDRIVE=#1
    
  2. Prueba el rendimiento de escritura realizando escrituras secuenciales con varias secuencias paralelas (16 o más), usando un tamaño de bloque de E/S de 1 MB y una profundidad de E/S de al menos 64:

    diskspd -d300 -b1M -o64 -Sh -t16 -si -w0 %TESTDRIVE%
    
  3. Prueba las IOPS de escritura realizando escrituras aleatorias con un tamaño de bloque de E/S de 4 KB y una profundidad de E/S de al menos 256:

    diskspd -d300 -b4K -o256 -Sh -r -w0 %TESTDRIVE%
    
  4. Latencia de escritura de prueba. Durante las pruebas de latencia de E/S, la VM no debe alcanzar el ancho de banda ni las IOPS máximas. De lo contrario, la latencia observada no reflejará la latencia de E/S real del disco persistente.

    diskspd -d300 -b4K -o4 -Sh -r -w0 -L %TESTDRIVE%
    
  5. Prueba el rendimiento de lectura realizando lecturas secuenciales con varias secuencias paralelas (16 o más), usando un tamaño de bloque de E/S de 1 MB y una profundidad de E/S de al menos 64:

    diskspd -d300 -b1M -o64 -Sh -t16 -si %TESTDRIVE%
    
  6. Prueba las IOPS de lectura realizando lecturas aleatorias con un tamaño de bloque de E/S de 4 KB y una profundidad de E/S de al menos 256:

    diskspd -d300 -b4K -o256 -Sh -r %TESTDRIVE%
    
  7. Para probar la latencia de lectura, es importante llenar el disco con datos para obtener una medición de latencia realista. La VM no debe alcanzar los límites de IOPS ni de capacidad durante esta prueba, ya que, cuando el disco persistente alcance su límite de saturación, rechazará las operaciones de E/S entrantes, lo que se reflejará como un aumento artificial de la latencia de E/S.

    diskspd -d300 -b4K -o4 -Sh -r -L %TESTDRIVE%
    
  8. Prueba el ancho de banda de lectura secuencial.

    diskspd -d300 -b1M -o64 -Sh -t4 -si %TESTDRIVE%
    
  9. Prueba el ancho de banda de escritura secuencial.

    diskspd -d300 -b1M -o64 -Sh -t4 -si -w100 %TESTDRIVE%
    
  10. Limpia el disco persistente y la VM desechables:

    1. Elimina el disco que se ha usado para comparar el rendimiento.
    2. Elimina la VM que has creado para comparar el rendimiento.

Siguientes pasos