PRIVATE OFFSHORE-INFRASTRUKTUR
Speicher & WiederherstellungFortgeschritten · 6 Min. Lesezeit

Messen Sie die NVMe-Leistung, ohne sich selbst zu täuschen

Definieren Sie das I/O-Muster, kontrollieren Sie Cache-Effekte und prüfen Sie Latenzverteilungen, bevor Sie aus einem Festplattentest eine Anwendungsschlussfolgerung ziehen.

Von SwissOctet Editorial
DIE DIREKTE ANTWORT

Ein nützlicher Speichertest passt Operationsgröße, Zugriffsmuster, Parallelität und Haltbarkeitsanforderungen an die Anwendung an. Zeichnen Sie die Testbedingungen und die Latenzverteilung auf und bestätigen Sie das Ergebnis dann mit Anwendungsmessungen.

01

Beginnen Sie mit einer Speicherfrage, nicht mit einer Punktzahl

Entscheiden Sie, was Sie wissen müssen, bevor Sie einen Benchmark ausführen. Vielleicht untersuchen Sie langsame Datenbank-Commits, den Durchsatz der Dateiverteilung oder einen Build-Prozess, der viele kleine Dateien erzeugt. Diese Arbeitslasten verlangen von der Festplatte nicht dasselbe. Eine große sequenzielle Kopie kann beeindruckend aussehen und dennoch wenig über die Verzögerung aussagen, die ein Dienst bei kleinen zufälligen Lesevorgängen erlebt.

NVMe wurde für nichtflüchtige Medien und effiziente parallele E/A entwickelt, aber sein Protokollname beschreibt nicht jeden Teil eines gehosteten Speicherpfads. Virtualisierung, das Dateisystem, Ressourcenkonkurrenz und die Anwendung spielen weiterhin eine Rolle. Formulieren Sie eine Testhypothese, etwa ob die Speicherlatenz einen bestimmten Vorgang verlangsamt, statt zu versuchen, eine Zahl zu erzeugen, die beweist, dass der gesamte Server schnell ist.

02

Beschreiben Sie die Arbeitslast in reproduzierbaren Begriffen

Erfassen Sie Operationsgröße, sequenzielles oder zufälliges Muster, Lese-Schreib-Verhältnis, Anzahl der Jobs und Queue-Tiefe. Geben Sie die Datensatzgröße und Testdauer an. Die fio-Dokumentation erklärt diese Arbeitslast-Steuerungen und die verfügbaren E/A-Engines. Eine beabsichtigte Tiefe wird nicht von jeder Engine oder Konfiguration erreicht, lesen Sie daher sowohl das berichtete Verhalten als auch die angeforderte Konfiguration.

Bewahren Sie eine Kopie der Testbeschreibung neben dem Ergebnis auf. Notieren Sie Betriebssystem, Dateisystem, Mount-Optionen, Dienstaktivität und verfügbare Kapazität. Wenn Sie Konfigurationen vergleichen, ändern Sie jeweils eine relevante Bedingung. Ein Test mit einem anderen Zugriffsmuster oder anderer Parallelität kann nicht fair so dargestellt werden, als hätte sich nur das Speichermedium geändert.

AnwendungsmusterZu beschreibende TestdimensionZu untersuchendes Ergebnis
Bereitstellung großer DateienSequenzielle Lesevorgänge und gleichzeitige ClientsAnhaltender Durchsatz und CPU-Nutzung
Datensatz-LookupKleine zufällige Lesevorgänge und repräsentative ParallelitätLatenzverteilung und abgeschlossene Vorgänge
Dauerhafte TransaktionSchreib- und SynchronisationsanforderungenCommit-bezogene Verzögerung, nicht nur gepufferte Schreibgeschwindigkeit
Build oder ExtraktionGemischte Operationen mit kleinen DateienEnd-to-End-Jobdauer und E/A-Wartezeiten
03

Steuern Sie Caching, ohne so zu tun, als spiele es keine Rolle

Ein Datensatz, der in den Speicher passt, misst nach dem ersten Durchlauf möglicherweise überwiegend das Cache-Verhalten. Das kann nützlich sein, wenn die Anwendung normalerweise vom selben Cache profitiert, sollte aber nicht als rohe Geräteleistung bezeichnet werden. Wählen Sie bewusst, ob der Test einen warmen Anwendungspfad, einen kälteren Datensatz oder einen E/A-Modus untersucht, der den Pufferungseffekt des Betriebssystems verringern soll.

Direct-I/O-Unterstützung und Ausrichtung hängen von Plattform und Engine ab. Sie drückt auch nicht automatisch die Haltbarkeitsanforderungen der Anwendung aus oder beseitigt jeden Cache im Stack. Geben Sie den gewählten Modus klar an und vermeiden Sie es, einen gepufferten Test mit einem ungepufferten Test zu vergleichen, als repräsentierten sie dieselbe Arbeit. Halten Sie Aufwärm- und Messintervalle getrennt, wo das die Interpretation erleichtert.

04

Lesen Sie Latenz-Tails zusammen mit dem Durchsatz

Durchschnittliche Latenz kann langsame Vorgänge verbergen, die echte Anfragen beeinflussen. Untersuchen Sie berichtete Perzentile und die Anzahl der Stichproben dahinter. Ein hohes Perzentil beschreibt die Grenze, unterhalb derer ein angegebener Anteil der beobachteten Vorgänge während dieses Tests lag; es ist keine dauerhafte Dienstgarantie. Kurze oder nicht repräsentative Läufe liefern begrenzte Belege über stark ausgelastete Produktionszeiträume.

Eine höhere Queue-Tiefe kann den abgeschlossenen Durchsatz verbessern und gleichzeitig die Wartezeit erhöhen. Dieser Kompromiss kann für die Stapelverarbeitung geeignet sein und einem interaktiven Dienst schaden. Vergleichen Sie Ergebnisse bei einer Parallelität, die der Anwendung ähnelt, und überwachen Sie gleichzeitig CPU und E/A-Druck. Stoppen Sie, bevor der Test eine unnötige Störung für eine andere Arbeitslast verursacht, die sich die Umgebung teilt.

05

Halten Sie den Test autorisiert und nicht destruktiv

Verwenden Sie ein dediziertes Testverzeichnis oder ein vorbereitetes Wegwerf-Volume mit genügend freiem Speicher und einem expliziten Bereinigungsplan. Richten Sie einen Schreib-Benchmark niemals auf ein ungeprüftes Rohgerät oder einen Produktionsdatensatz. Prüfen Sie das Ziel und das Schreibverhalten des Tools, bevor Sie beginnen, und starten Sie mit einem begrenzten Lauf. Synthetische E/A kann Kapazität verbrauchen und Dienste beeinträchtigen, selbst wenn sie keine nützlichen Dateien überschreibt.

Für eine produktionsnahe Bewertung vereinbaren Sie ein Wartungsfenster und behalten die Anwendungsüberwachung bei. Verwenden Sie nach Möglichkeit fiktive Daten. Leiten Sie die Speicherzuverlässigkeit nicht aus einem Geschwindigkeitstest ab: Integritätsprüfungen, Backups und Wiederherstellung sind getrennte Aufgaben. Ein Gerät, das einen Benchmark abschließt, braucht dennoch eine Wiederherstellungsstrategie für Löschung, Softwarefehler oder Verlust der Maschine.

06

Schließen Sie den Kreis mit Anwendungsnachweisen

Angenommen, ein Berichtsdienst verbringt viel Zeit mit dem Warten auf zufällige Lesevorgänge. Das Team testet ein repräsentatives Lesemuster und wiederholt dann den tatsächlichen Bericht mit vergleichbaren Daten. Wenn sich der Bericht verbessert, während seine übrige Arbeit stabil bleibt, stützt das Ergebnis die Speicherhypothese. Wenn nicht, untersuchen Sie Abfragedesign, Speicher oder eine andere Abhängigkeit, statt breitere synthetische Tests zu wiederholen.

Pulse NVMe und ausgewählte dedizierte Konfigurationen führen NVMe-Speicher im SwissOctet-Katalog auf. Ihre Labels sind Spezifikationen, keine veröffentlichten Anwendungs-Benchmarks. Verwenden Sie eine kontrollierte Methode, um die bereitgestellte Umgebung zu bewerten, und bewahren Sie die Bedingungen mit den Ergebnissen auf. Die Entscheidung wird stärker, wenn die Speichermessung und das für den Nutzer sichtbare Ergebnis dieselbe Frage beantworten.

MACHEN SIE ES ZU HANDLUNG

Ihre praktische Checkliste.

  • Definieren Sie zuerst die Anwendungsfrage.
  • Erfassen Sie Muster, Blockgröße, Parallelität und Dauer.
  • Geben Sie Cache- und E/A-Modus-Annahmen an.
  • Prüfen Sie Latenzperzentile ebenso wie den Durchsatz.
  • Verwenden Sie ein verifiziertes Wegwerfziel und eine begrenzte Anfangslast.
  • Bestätigen Sie das Ergebnis mit einem Anwendungstest.
HÄUFIGE FRAGEN

Die Details, die zählen.

Reicht eine sequenzielle Kopie aus, um Datenbankspeicher zu vergleichen?+

Normalerweise nicht. Datenbankzugriffe können kleine zufällige Lesevorgänge, Schreibvorgänge und Synchronisation umfassen. Modellieren Sie das relevante Muster und verifizieren Sie die tatsächliche Anwendung.

Beweist Direct I/O dauerhafte Schreibvorgänge?+

Nein. Pufferung und Haltbarkeit sind getrennte Belange. Passen Sie das Synchronisationsverhalten an, das die Anwendung erfordert.

Kann ich einen Test als garantierte Plan-Geschwindigkeit veröffentlichen?+

Nein. Veröffentlichen Sie seine Bedingungen und seinen Geltungsbereich. Ein gemessenes Ergebnis aus einem Lauf ist keine Service-Level- oder zukünftige Leistungsgarantie.

PRIMÄRE REFERENZEN

Gehen Sie zur Quelle.

Diese Referenzen unterstützen die technischen Konzepte in diesem Leitfaden. Folgen Sie der aktuellen Dokumentation, bevor Sie ein Produktionssystem ändern.

  1. fio: Dokumentation des flexiblen E/A-Testers fio.readthedocs.io
  2. NVM Express: Spezifikationsübersicht und FAQ nvmexpress.org
  3. Linux-Kernel: Pressure Stall Information docs.kernel.org

Redaktionelle Beratung durch SwissOctet. Beispiele sind illustrativ. Servicespezifikationen, verfügbare Optionen und vertragliche Bedingungen müssen separat überprüft werden.

VERBINDEN SIE DAS WISSEN

Verwandte Infrastruktur.

HALTEN SIE DEN FADEN

Ihre nächsten Feldnotizen.

Alle Leitfäden entdecken