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 pro Geräte-Übermittlungswarteschlange. Wenn eine Warteschlange voll ist, sendet Windows keine E/A-Vorgänge mehr, bis die Warteschlange teilweise geleert wurde. Dies führt zu einer erheblichen Leistungsbeeinträchtigung. Um diese Bedingung nicht auszulösen, empfehlen wir, die Benchmarking-Arbeitslasten auf eine aggregierte Warteschlangentiefe von 1.024 pro angehängtem Volume zu beschränken.

Benchmarkingsoftware konfigurieren

Verwenden Sie DISKSPD, um die Leistung von Persistent Disks 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 (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 10 GB große Datei mit 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, für die Sie ein Benchmarking durchführen möchten, einen nichtflüchtigen Speicher hinzu.

  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. Laufwerke auflisten, die an die VM angehängt sind:

    DISKPART> list disk
    

    Die Ausgabe zeigt die neu erstellte 1-TB-Festplatte, die in der folgenden Beispielausgabe als „Disk 1“ bezeichnet wird:

      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 testen möchten.

    DISKPART> select disk 1
    
  8. Listen Sie die Partitionen auf der ausgewählten Festplatte 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. Ausgewählte Partition löschen:

    DISKPART> delete partition
    
  11. Beenden Sie DiskPart

    DISKPART> exit
    

Die vorherigen Schritte sollten wiederholt werden, wenn der Datenträger, den Sie benchmarken möchten, neben der reservierten Partition weitere Partitionen hat. Wenn nur noch die reservierte Partition vorhanden ist, fahren Sie mit den folgenden Schritten fort:

  1. Nachdem Sie das Laufwerk identifiziert und bestätigt haben, dass keine Partitionen vorhanden sind, 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 für das Benchmarking der Leistung erstellt wurde.

Nächste Schritte