Eseguire il benchmark delle prestazioni di Persistent Disk su una VM Windows


Questo documento descrive come eseguire il benchmark delle prestazioni dei dischi permanenti su istanze di macchine virtuali (VM) Windows. Per le VM Linux, consulta prestazioni Persistent Disk di benchmark su una VM Linux.

Per misurare le IOPS e la velocità effettiva 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 carico di lavoro realistico senza perdere i contenuti del disco esistente. Tieni presente che quando esegui il benchmark del file system su un disco esistente, esistono molti fattori specifici del tuo ambiente di sviluppo che possono influire sui risultati del benchmark e potresti non raggiungere i limiti di prestazioni del disco.

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

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

Configurare il software di benchmarking

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

  1. Connettiti alla tua 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
    

Confronta le IOPS e la velocità effettiva di un disco su un'istanza VM in esecuzione

misurare le IOPS e la velocità effettiva per un carico di lavoro realistico su un disco su un'istanza VM in esecuzione senza perdere i contenuti del disco, in una nuova directory sul file system esistente.

Nei passaggi che seguono, si presume che il disco da testare sia montato come D: e che i comandi vengano eseguiti in una finestra del prompt dei comandi con privilegi elevati:

  1. Connettiti alla VM.

  2. Verifica la configurazione del software DISKSPD e modificala al file 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 la velocità effettiva di scrittura eseguendo scritture sequenziali con più e streaming paralleli (16 o più), utilizzando blocchi di I/O di 1 MB e profondità di I/O di almeno 64:

    diskspd -d60 -b1M -o64 -Sh -w100 -t16 -si %TESTFILE%
    
  5. Testa le IOPS di scrittura eseguendo scritture casuali, utilizzando una dimensione del blocco I/O pari a 4 kB e una profondità di I/O di almeno 256:

    diskspd -d60 -b4K -o256 -Sh -w100 -r %TESTFILE%
    
  6. Testa la velocità effettiva di lettura eseguendo letture sequenziali con più velocità (16 o più), utilizzando un blocco I/O di 1 MB e una profondità di I/O pari a almeno 64:

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

    diskspd -d60 -b4K -o256 -Sh -r %TESTFILE%
    
  8. Pulizia:

    del %TESTFILE%
    

Benchmarking delle prestazioni Persistent Disk non elaborate

Per misurare le prestazioni dei volumi dei dischi permanenti al di fuori del tuo ambiente di sviluppo, testa le prestazioni di lettura e scrittura di un dispositivo di blocco 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 che intendi confrontare.

  3. Connettiti alla tua istanza VM.

  4. Verifica la configurazione del software DISKSPD e modificala al file binario a 64 bit:

    cd C:\DISKSPD\amd64
    
  5. Verifica che sul disco non siano presenti partizioni non prenotate. 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 nella il seguente output di esempio:

      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. Esci da diskpart

    DISKPART> exit
    

I passaggi precedenti devono essere ripetuti se il disco di cui vuoi eseguire il benchmark contiene altre partizioni oltre alla partizione riservata. Quando solo La partizione riservata rimane, 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 disco da testare.

    C:/> set TESTDRIVE=#1
    
  2. Testa la velocità effettiva in scrittura eseguendo scritture sequenziali con più stream paralleli (16 o più), utilizzando una dimensione del blocco I/O di 1 MB e una profondità I/O di almeno 64:

    diskspd -d60 -b1M -o64 -Sh -t16 -si -w0 %TESTDRIVE%
    
  3. Testa le IOPS di scrittura eseguendo scritture casuali, utilizzando una dimensione del blocco I/O pari a 4 kB e una profondità di I/O di almeno 256:

    diskspd -d60 -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 massima o il numero di IOPS; altrimenti la latenza osservata non riflette la latenza effettiva di I/O Persistent Disk.

    diskspd -d60 -b4K -o4 -Sh -r -w0 -L %TESTDRIVE%
    
  5. Testa la velocità effettiva di lettura eseguendo letture sequenziali con più stream paralleli (almeno 16), utilizzando una dimensione del blocco I/O di 1 MB e una profondità I/O di almeno 64:

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

    diskspd -d60 -b4K -o256 -Sh -r %TESTDRIVE%
    
  7. Per testare la latenza di lettura, è importante riempire il disco con dati per ottenere una misurazione della latenza realistica. La VM non deve raggiungere le IOPS o limiti di velocità effettiva durante il test perché, raggiunge il limite di saturazione, respinge le operazioni di I/O in entrata, e questo si riflette come un aumento artificiale della latenza di I/O.

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

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

    diskspd -d60 -b1M -o64 -Sh -t4 -si -w100 %TESTDRIVE%
    
  10. Elimina il disco permanente e la VM usa e getta:

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

Passaggi successivi