Confronta le prestazioni del disco permanente su una VM Windows

Questo documento descrive come confrontare le prestazioni di Persistent Disk per le istanze di macchine virtuali (VM) Windows. Per le VM Linux, consulta Prestazioni Persistent Disk di benchmark su una VM Linux.

Per misurare il numero di IOPS e la velocità effettiva di un disco in uso su un'istanza in esecuzione, esegui il markup 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, ci sono molti fattori specifici del tuo ambiente di sviluppo che possono influire sui risultati del benchmarking e potresti non raggiungere i limiti delle prestazioni del disco.

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

Configura software di benchmarking

Per confrontare le 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
    

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

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

Nei passaggi seguenti si presuppone che il disco da testare sia montato come D: e che i comandi vengano eseguiti in una finestra del Prompt dei comandi elevata:

  1. Connettiti alla VM.

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

    cd C:\DISKSPD\amd64
    
  3. Crea un nuovo file di 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ù flussi paralleli (16 o più), utilizzando una dimensione del blocco di I/O di 1 MB e una 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 di 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ù flussi paralleli (16 o più), utilizzando una dimensione del blocco di I/O di 1 MB e una profondità di I/O di 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à di I/O di almeno 256:

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

    del %TESTFILE%
    

Benchmarking delle prestazioni non elaborate del Persistent Disk

Per misurare le prestazioni dei soli volumi di Persistent Disk al di fuori del tuo ambiente di sviluppo, verifica le prestazioni di lettura e scrittura per un dispositivo a blocchi su un Persistent Disk 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 con il file binario a 64 bit:

    cd C:\DISKSPD\amd64
    
  5. Verifica che sul disco non esistano 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, ovvero il Disco 1, nel 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 per il quale 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 su cui intendi eseguire il benchmark ha altre partizioni oltre alla partizione riservata. Quando rimane solo la partizione riservata, continua con i passaggi seguenti:

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

    C:/> set TESTDRIVE=#1
    
  2. Testa la velocità effettiva di scrittura eseguendo scritture sequenziali con flussi paralleli multipli (16 o più), utilizzando una dimensione del blocco di I/O di 1 MB e una profondità di 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 di 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 o il numero massimo di IOPS. In caso contrario, la latenza osservata non rifletterà l'effettiva latenza di I/O del Persistent Disk.

    diskspd -d60 -b4K -o4 -Sh -r -w0 -L %TESTDRIVE%
    
  5. Testa la velocità effettiva di lettura eseguendo letture sequenziali con più flussi paralleli (16 o più), utilizzando una dimensione del blocco di I/O di 1 MB e una profondità di 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à di 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 al fine di ottenere una misurazione realistica della latenza. La VM non deve raggiungere i limiti di IOPS o di velocità effettiva durante questo test perché, una volta raggiunto il limite di saturazione del Persistent Disk, respinge le operazioni di I/O in entrata, il che 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. Esegui la pulizia del Persistent Disk e della VM utilizzabili:

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

Passaggi successivi