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


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

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 gefüllt ist, sendet Windows keine E/A-Vorgänge mehr, bis die Warteschlange teilweise entleert ist. Dadurch wird die Leistung erheblich reduziert. 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 Persistent Disk auf Windows-VMs zu vergleichen.

  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 mit erhöhten Rechten ausgeführt werden:

  1. Mit VM verbinden.

  2. Prüfen Sie die Softwarekonfiguration DISKSPD und ändern Sie das Verzeichnis auf die 64-Bit-Binärdatei:

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

    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 Persistent Disk-Volumes 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 Speicher 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 Eingabeaufforderungsfenster mit erhöhten Rechten ein.

    diskpart
    
  6. Listen Sie die an die VM angehängten Laufwerke auf:

    DISKPART> list disk
    

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

      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, das Sie vergleichen möchten.

    DISKPART> select disk 1
    
  8. Listen Sie 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. Löschen Sie die ausgewählte Partition:

    DISKPART> delete partition
    
  11. Beenden Sie DiskPart

    DISKPART> exit
    

Die vorherigen Schritte sollten wiederholt werden, wenn das Laufwerk, für das Sie ein Benchmarking durchführen möchten, andere Partitionen als die reservierte Partition hat. Wenn nur die reservierte Partition bleibt, fahren Sie mit den folgenden Schritten fort:

  1. Nachdem Sie das Laufwerk ermittelt und geprüft haben, dass keine Partitionen vorhanden sind, setzen Sie die Umgebungsvariable TESTDRIVE auf "#", gefolgt von der Nummer des zu testenden Laufwerks.

    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 zum Benchmarking der Leistung verwendet wird.
    2. Löschen Sie die VM, die zum Benchmarking der Leistung erstellt wurde.

Nächste Schritte