# Messen Sie die Leistung von NVMe, ohne sich selbst zu täuschen | SwissOctet Insights https://swissoctet.com/de/insights/nvme-benchmark-methodology/ SwissOctet / Einblicke / Speicher & Wiederherstellung Speicher & Wiederherstellung Fortgeschritten · 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 Leitfaden speichern Link kopieren AUF DIESER SEITE 01 Beginnen Sie mit einer Speicherfrage, nicht mit einer Punktzahl 02 Beschreiben Sie die Arbeitslast in reproduzierbaren Begriffen 03 Steuern Sie Caching, ohne so zu tun, als spiele es keine Rolle 04 Lesen Sie Latenz-Tails zusammen mit dem Durchsatz 05 Halten Sie den Test autorisiert und nicht destruktiv 06 Schließen Sie den Kreis mit Anwendungsnachweisen Ihre praktische Checkliste Quellen & weiterführende Literatur Zurück zur Bibliothek 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. Anwendungsmuster Zu beschreibende Testdimension Zu untersuchendes Ergebnis Bereitstellung großer Dateien Sequenzielle Lesevorgänge und gleichzeitige Clients Anhaltender Durchsatz und CPU-Nutzung Datensatz-Lookup Kleine zufällige Lesevorgänge und repräsentative Parallelität Latenzverteilung und abgeschlossene Vorgänge Dauerhafte Transaktion Schreib- und Synchronisationsanforderungen Commit-bezogene Verzögerung, nicht nur gepufferte Schreibgeschwindigkeit Build oder Extraktion Gemischte Operationen mit kleinen Dateien End-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. Checkliste herunterladen 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. fio: Dokumentation des flexiblen E/A-Testers fio.readthedocs.io NVM Express: Spezifikationsübersicht und FAQ nvmexpress.org 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. Pulse NVMe Schweiz Metal Hyper Schweiz Metal EPYC Schweiz HALTEN SIE DEN FADEN Ihre nächsten Feldnotizen. Alle Leitfäden entdecken FELDNOTIZ / 01 + Speicher & Wiederherstellung Grundlagen Wann NVMe einen Unterschied für Ihre Anwendung macht Unterscheiden Sie Kapazität, Latenz und Durchsatz, damit ein schnelleres Storage-Label ein echtes Anwendungsproblem löst. 4 Min. Lesezeit Den Leitfaden lesen FELDNOTIZ / 02 + Speicher & Wiederherstellung Angewandt Snapshots und Backups: Wählen Sie den Ausfall, den Sie überstehen müssen Vergleichen Sie Wiederherstellungspunkte, Ausfallgrenzen und Anwendungskonsistenz, statt anzunehmen, dass ein Snapshot und ein unabhängiges Backup denselben Schutz bieten. 4 Min. Lesezeit Den Leitfaden lesen FELDNOTIZ / 03 + Speicher & Wiederherstellung Grundlagen Objekt-, Datei- oder Blockspeicher: Wählen Sie die Schnittstelle, die Ihre Anwendung benötigt Unterscheiden Sie Speicherschnittstellen, Zugriffssemantik und betriebliche Verantwortlichkeiten, bevor Sie eine Kapazitätsanforderung in eine Anwendungsarchitektur verwandeln. 4 Min. Lesezeit Den Leitfaden lesen