Esegui il benchmark delle prestazioni del disco permanente su una VM Windows

Questo documento descrive come eseguire il benchmark delle prestazioni del disco permanente sulle istanze di macchine virtuali (VM) Windows. Per le VM Linux, vedi Esegui il benchmark delle prestazioni Persistent Disk su una VM Linux.

Per misurare le IOPS e il throughput di un disco in uso su un'istanza in esecuzione, esegui il benchmark del file system con la configurazione prevista. Utilizza questa opzione per testare un workload realistico senza perdere i contenuti del disco esistente. Tieni presente che quando esegui il benchmark del file system su un disco esistente, ci sono molti fattori specifici legati all'ambiente di sviluppo che possono influire sui risultati del benchmarking. Quindi potresti non raggiungere i limiti di prestazioni del disco.

Per misurare le prestazioni non elaborate di un disco permanente, esegui il benchmark direttamente sul dispositivo a blocchi. Utilizza questa opzione per confrontare le prestazioni del disco non formattato con i limiti di prestazioni del disco.

Sulle VM C4, Windows supporta una profondità massima di 1024 per coda di invio per dispositivo. Quando una coda si riempie, Windows interrompe l'invio di I/O finché la coda non si è svuotata parzialmente, il che riduce notevolmente le prestazioni. Per evitare di attivare questa condizione, ti consigliamo di limitare i carichi di lavoro di benchmarking a una profondità della coda aggregata di 1024 per volume collegato.

Configurare il software di benchmarking

Per eseguire il benchmark delle prestazioni Persistent Disk sulle VM Windows, utilizza DISKSPD.

  1. Connettiti all'istanza VM

  2. Apri PowerShell e scarica lo strumento DISKSPD utilizzando il seguente 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
    

Esegui il benchmark delle IOPS e del throughput di un disco su un'istanza VM in esecuzione

Per misurare le IOPS e il throughput per un workload realistico su un disco attivo di un'istanza VM in esecuzione senza perdere i contenuti del disco, esegui il benchmark rispetto a una nuova directory sul file system esistente.

Nei passaggi seguenti, supponi che il disco da testare sia montato come D: e che i comandi vengano eseguiti in una finestra del prompt dei comandi (cmd.exe) con privilegi di amministratore:

  1. Connettiti alla VM.

  2. Verifica la configurazione del software di DISKSPD e cambia la directory nel binario a 64 bit:

    cd C:\DISKSPD\amd64
    
  3. Crea un nuovo file da 10 GB denominato DISKTEST.DAT sul disco:

    set TESTFILE=D:\DISKTEST.DAT
    diskspd -d0 -c10G %TESTFILE%
    
  4. Testa il throughput di scrittura eseguendo scritture sequenziali con più stream paralleli (almeno 16), utilizzando una dimensione dei blocchi di I/O di 1 MB e una profondità di I/O di almeno 64:

    diskspd -d300 -b1M -o64 -Sh -w100 -t16 -si %TESTFILE%
    
  5. Testa le IOPS di scrittura eseguendo scritture casuali, utilizzando una dimensione dei blocchi di I/O di 4 KB e una profondità di I/O di almeno 256:

    diskspd -d300 -b4K -o256 -Sh -w100 -r %TESTFILE%
    
  6. Testa il throughput di lettura eseguendo letture sequenziali con più stream paralleli (almeno 16), utilizzando una dimensione dei blocchi di I/O di 1 MB e una profondità di I/O di almeno 64:

    diskspd -d300 -b1M -o64 -Sh -t16 -si %TESTFILE%
    
  7. Testa le IOPS di lettura eseguendo letture casuali, utilizzando una dimensione dei blocchi di I/O di 4 KB e una profondità di I/O di almeno 256:

    diskspd -d300 -b4K -o256 -Sh -r %TESTFILE%
    
  8. Esegui la pulizia:

    del %TESTFILE%
    

Esegui il benchmark delle prestazioni non elaborate di Persistent Disk

Per misurare le prestazioni solo dei volumi Persistent Disk al di fuori del tuo ambiente di sviluppo, testa le prestazioni di lettura e scrittura di un dispositivo a blocchi su un disco permanente e una VM usa e getta.

  1. Crea e avvia un'istanza VM.

  2. Aggiungi un Persistent Disk all'istanza VM di cui intendi eseguire il benchmark.

  3. Connettiti all'istanza VM

  4. Verifica la configurazione del software di DISKSPD e cambia la directory nel binario a 64 bit:

    cd C:\DISKSPD\amd64
    
  5. Verifica che non siano presenti partizioni non riservate sul disco. Inserisci diskpart in una finestra del prompt dei comandi con privilegi elevati.

    diskpart
    
  6. Elenca i dischi collegati alla VM:

    DISKPART> list disk
    

    L'output mostra il disco da 1 TB appena creato, che è il disco 1 nell'output di esempio seguente:

      Disk ###  Status         Size     Free     Dyn  Gpt
      --------  -------------  -------  -------  ---  ---
      Disk 0    Online          120 GB  1024 KB        *
      Disk 1    Online         1024 GB  1023 GB        *
    
  7. Seleziona il disco di cui vuoi eseguire il benchmark.

    DISKPART> select disk 1
    
  8. Elenca le partizioni sul disco selezionato.

    DISKPART> list partition
    
       Partition ###  Type              Size       Offset
       -------------  ----------------  --------   -------
       Partition 1    Reserved              15 MB    17 KB
       Partition 2    Primary             1024 GB    16 MB
    
  9. Seleziona la partizione principale 2:

    DISKPART> select partition 2
    
  10. Elimina la partizione selezionata:

    DISKPART> delete partition
    
  11. Exit diskpart

    DISKPART> exit
    

I passaggi precedenti devono essere ripetuti se il disco che intendi sottoporre a benchmark ha altre partizioni oltre a quella riservata. Quando rimane solo la partizione riservata, continua con i seguenti passaggi:

  1. Dopo aver identificato il disco e verificato che non ci siano partizioni, imposta la variabile di ambiente TESTDRIVE su "#" seguito dal numero del disco da testare.

    C:/> set TESTDRIVE=#1
    
  2. Testa il throughput di scrittura eseguendo scritture sequenziali con più stream paralleli (almeno 16), utilizzando una dimensione dei blocchi di I/O di 1 MB e una profondità di I/O di almeno 64:

    diskspd -d300 -b1M -o64 -Sh -t16 -si -w0 %TESTDRIVE%
    
  3. Testa le IOPS di scrittura eseguendo scritture casuali, utilizzando una dimensione dei blocchi di I/O di 4 KB e una profondità di I/O di almeno 256:

    diskspd -d300 -b4K -o256 -Sh -r -w0 %TESTDRIVE%
    
  4. Testa la latenza di scrittura. Durante il test della latenza di I/O, la VM non deve raggiungere la larghezza di banda o le IOPS massime; altrimenti, la latenza osservata non rifletterà la latenza di I/O effettiva di Persistent Disk.

    diskspd -d300 -b4K -o4 -Sh -r -w0 -L %TESTDRIVE%
    
  5. Testa il throughput di lettura eseguendo letture sequenziali con più stream paralleli (almeno 16), utilizzando una dimensione dei blocchi di I/O di 1 MB e una profondità di I/O di almeno 64:

    diskspd -d300 -b1M -o64 -Sh -t16 -si %TESTDRIVE%
    
  6. Testa le IOPS di lettura eseguendo letture casuali, utilizzando una dimensione dei blocchi di I/O di 4 KB e una profondità di I/O di almeno 256:

    diskspd -d300 -b4K -o256 -Sh -r %TESTDRIVE%
    
  7. Per testare la latenza di lettura, è importante riempire il disco con dei dati per ottenere una misurazione realistica della latenza. La VM non deve raggiungere i limiti di IOPS o throughput durante questo test perché, una volta che Persistent Disk ha raggiunto il limite di saturazione, respinge le operazioni di I/O in entrata e ciò si riflette in un aumento artificiale della latenza di I/O.

    diskspd -d300 -b4K -o4 -Sh -r -L %TESTDRIVE%
    
  8. Testa la larghezza di banda di lettura sequenziale.

    diskspd -d300 -b1M -o64 -Sh -t4 -si %TESTDRIVE%
    
  9. Testa la larghezza di banda di scrittura sequenziale.

    diskspd -d300 -b1M -o64 -Sh -t4 -si -w100 %TESTDRIVE%
    
  10. Pulisci il Persistent Disk e la VM temporanei:

    1. Elimina il disco utilizzato per il benchmarking delle prestazioni.
    2. Elimina la VM creata per il benchmarking delle prestazioni.

Passaggi successivi