Benchmarking der Leistung von nichtflüchtigem Speicher auf einer Windows-VM


In diesem Dokument wird beschrieben, wie Sie die Leistung von Persistent Disk auf Windows-VM-Instanzen vergleichen. Informationen zu Linux-VMs finden Sie unter Benchmarking der Leistung von nichtflüchtigem Speicher auf einer Linux-VM.

Zum Messen von IOPS und Durchsatz eines Laufwerks, das auf einer laufenden Instanz verwendet wird, führen Sie ein Benchmarking des Dateisystems mit der gewünschten Konfiguration durch. Mit dieser Option können Sie eine realistische Arbeitslast testen, ohne den Inhalt des vorhandenen Laufwerks zu verlieren. Beachten Sie, dass beim Benchmarking des Dateisystems auf einem vorhandenen Laufwerk viele für Ihre Entwicklungsumgebung spezifische Faktoren die Benchmarking-Ergebnisse beeinflussen können und die Leistungsgrenzen des Laufwerks möglicherweise nicht erreicht werden.

Zum Messen der reinen Leistung eines nichtflüchtigen Speichers führen Sie ein direktes Benchmarking des Blockgeräts durch. Verwenden Sie diese Option, um die reine Leistung des Laufwerks mit den Leistungsgrenzen des Laufwerks zu vergleichen.

Auf C4-VMs unterstützt Windows eine maximale Tiefe von 1.024 Elementen pro Geräteeinreichungswarteschlange. Wenn eine Warteschlange voll ist, sendet Windows keine E/A-Vorgänge mehr, bis die Warteschlange teilweise geleert ist. Dies reduziert die Leistung erheblich. Um diese Situation zu vermeiden, empfehlen wir, die Benchmarking-Arbeitslasten auf eine Gesamtwarteschlangentiefe von 1.024 pro angeschlossenem Volume zu begrenzen.

Benchmarkingsoftware konfigurieren

Verwenden Sie DISKSPD, um die Leistung von nichtflüchtigem Speicher auf Windows-VMs zu benchmarken.

  1. Stellen Sie eine Verbindung zur VM-Instanz her.

  2. Öffnen Sie PowerShell und laden Sie das DISKSPD-Tool mit dem folgenden Befehl herunter:

    $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
    

Benchmarking von IOPS und Durchsatz eines Laufwerks auf einer laufenden VM-Instanz

Wenn Sie IOPS und Durchsatz für eine realistische Arbeitslast auf einem aktiven Laufwerk auf einer laufenden VM-Instanz messen möchten, ohne den Inhalt des Laufwerks zu verlieren, führen Sie ein Benchmarking mit einem neuen Verzeichnis im vorhandenen Dateisystem durch.

In den folgenden Schritten wird davon ausgegangen, dass das zu testende Laufwerk als D: bereitgestellt wird und die Befehle in einem Eingabeaufforderungsfenster (cmd.exe) mit Administratorrechten ausgeführt werden:

  1. Mit VM verbinden.

  2. Prüfe die Softwarekonfiguration von DISKSPD und ändere das Verzeichnis in das 64-Bit-Binärprogramm:

    cd C:\DISKSPD\amd64
    
  3. Erstellen Sie auf dem Laufwerk eine neue Datei mit 10 GB und dem Namen DISKTEST.DAT:

    set TESTFILE=D:\DISKTEST.DAT
    diskspd -d0 -c10G %TESTFILE%
    
  4. Testen Sie den Schreibdurchsatz mithilfe sequenzieller Schreibvorgänge mit mehreren parallelen Streams (mindestens 16) mit einer E/A-Blockgröße von 1 MB und einer E/A-Tiefe von mindestens 64:

    diskspd -d60 -b1M -o64 -Sh -w100 -t16 -si %TESTFILE%
    
  5. Testen Sie die Schreib-IOPS mithilfe zufälliger Schreibvorgänge mit einer E/A-Blockgröße von 4 KB und einer E/A-Tiefe von mindestens 256:

    diskspd -d60 -b4K -o256 -Sh -w100 -r %TESTFILE%
    
  6. Testen Sie den Lesedurchsatz mithilfe sequenzieller Lesevorgänge mit mehreren parallelen Streams (mindestens 16) mit einer E/A-Blockgröße von 1 MB und einer E/A-Tiefe von mindestens 64:

    diskspd -d60 -b1M -o64 -Sh -t16 -si %TESTFILE%
    
  7. Testen Sie die Lese-IOPS mithilfe zufälliger Lesevorgänge mit einer E/A-Blockgröße von 4 KB und einer E/A-Tiefe von mindestens 256:

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

    del %TESTFILE%
    

Benchmarking der reinen Leistung nichtflüchtiger Speicher

Wenn Sie die Leistung von nichtflüchtigen Speichern allein außerhalb Ihrer Entwicklungsumgebung messen möchten, testen Sie die Lese- und Schreibleistung für ein Blockgerät auf einem nichtflüchtigen Wegwerf-Speicher und einer Wegwerf-VM.

  1. VM-Instanz erstellen und starten

  2. Fügen Sie der VM-Instanz einen nichtflüchtigen Datenträger hinzu, für den Sie ein Benchmarking durchführen möchten.

  3. Stellen Sie eine Verbindung zur VM-Instanz her.

  4. Prüfe die Softwarekonfiguration von DISKSPD und ändere das Verzeichnis in das 64-Bit-Binärprogramm:

    cd C:\DISKSPD\amd64
    
  5. Prüfen Sie, ob sich auf dem Laufwerk keine nicht reservierten Partitionen befinden. Geben Sie diskpart in ein Fenster der Eingabeaufforderung mit erhöhten Rechten ein.

    diskpart
    
  6. Liste der an die VM angeschlossenen Laufwerke auflisten:

    DISKPART> list disk
    

    Die Ausgabe zeigt das neu erstellte 1-TB-Laufwerk, also Laufwerk 1 in der folgenden Beispielausgabe:

      Disk ###  Status         Size     Free     Dyn  Gpt
      --------  -------------  -------  -------  ---  ---
      Disk 0    Online          120 GB  1024 KB        *
      Disk 1    Online         1024 GB  1023 GB        *
    
  7. Wählen Sie das Laufwerk aus, für das Sie einen Benchmark erstellen möchten.

    DISKPART> select disk 1
    
  8. Listet die Partitionen auf dem ausgewählten Laufwerk auf.

    DISKPART> list partition
    
       Partition ###  Type              Size       Offset
       -------------  ----------------  --------   -------
       Partition 1    Reserved              15 MB    17 KB
       Partition 2    Primary             1024 GB    16 MB
    
  9. Wählen Sie die primäre Partition 2 aus:

    DISKPART> select partition 2
    
  10. So löschen Sie die ausgewählte Partition:

    DISKPART> delete partition
    
  11. Beenden Sie DiskPart

    DISKPART> exit
    

Wiederholen Sie die vorherigen Schritte, wenn das Laufwerk, für das Sie einen Benchmark durchführen möchten, neben der reservierten Partition noch andere Partitionen hat. Wenn nur die reservierte Partition übrig bleibt, fahren Sie mit den folgenden Schritten fort:

  1. Nachdem Sie das Laufwerk ermittelt und bestätigt haben, dass es keine Partitionen gibt, legen Sie die Umgebungsvariable TESTDRIVE auf „#“ gefolgt von der Nummer des zu testenden Laufwerks fest.

    C:/> set TESTDRIVE=#1
    
  2. Testen Sie den Schreibdurchsatz mithilfe sequenzieller Schreibvorgänge mit mehreren parallelen Streams (mindestens 16) mit einer E/A-Blockgröße von 1 MB und einer E/A-Tiefe von mindestens 64:

    diskspd -d60 -b1M -o64 -Sh -t16 -si -w0 %TESTDRIVE%
    
  3. Testen Sie die Schreib-IOPS mithilfe zufälliger Schreibvorgänge mit einer E/A-Blockgröße von 4 KB und einer E/A-Tiefe von mindestens 256:

    diskspd -d60 -b4K -o256 -Sh -r -w0 %TESTDRIVE%
    
  4. Testen Sie die Schreiblatenz. Beim Test der E/A-Latenz darf die VM nicht das Bandbreiten- oder IOPS-Limit erreichen. Andernfalls spiegelt die Latenz nicht die tatsächliche E/A-Latenz des nichtflüchtigen Speichers wider.

    diskspd -d60 -b4K -o4 -Sh -r -w0 -L %TESTDRIVE%
    
  5. Testen Sie den Lesedurchsatz mithilfe sequenzieller Lesevorgänge mit mehreren parallelen Streams (mindestens 16) mit einer E/A-Blockgröße von 1 MB und einer E/A-Tiefe von mindestens 64:

    diskspd -d60 -b1M -o64 -Sh -t16 -si %TESTDRIVE%
    
  6. Testen Sie die Lese-IOPS mithilfe zufälliger Lesevorgänge mit einer E/A-Blockgröße von 4 KB und einer E/A-Tiefe von mindestens 256:

    diskspd -d60 -b4K -o256 -Sh -r %TESTDRIVE%
    
  7. Zum Testen der Leselatenz ist es wichtig, den Speicher mit Daten zu füllen, um eine realistische Latenzmessung zu erhalten. Die VM darf während dieses Tests keine IOPS- oder Durchsatzlimits erreichen. Erreicht der Persistent Disk die Sättigungsgrenze, so werden eingehende E/A-Vorgänge verzögert, was sich in einem künstlichen Anstieg der E/A-Latenz widerspiegelt.

    diskspd -d60 -b4K -o4 -Sh -r -L %TESTDRIVE%
    
  8. Testen Sie die sequenzielle Lesebandbreite.

    diskspd -d60 -b1M -o64 -Sh -t4 -si %TESTDRIVE%
    
  9. Testen Sie die sequenzielle Schreibbandbreite.

    diskspd -d60 -b1M -o64 -Sh -t4 -si -w100 %TESTDRIVE%
    
  10. Bereinigen Sie Persistent Disk und die VM:

    1. Löschen Sie das Laufwerk, das für das Benchmarking der Leistung verwendet wurde.
    2. Löschen Sie die VM, die Sie für das Benchmarking der Leistung erstellt haben.

Nächste Schritte