Wie schnell ist ein Augenblick, also eine sofortige Befriedigung? Untersuchungen zeigen, dass für die meisten Softwarebenutzer eine Verzögerung von 0,1 Sekunden oder weniger der Fall ist als augenblicklich betrachtet. In einer Sekunde beginnen die Gedanken des Benutzers abzuschweifen. Wenn eine Anwendung nicht antwortet fünf oder sechs Sekunden, wird der Benutzer wahrscheinlich frustriert sein oder die App ganz nicht mehr verwenden. In den meisten Fällen ist die Speicherinfrastruktur für diese Verzögerungen verantwortlich, die zu einer schlechten Endbenutzererfahrung und anderen negativen Auswirkungen auf ein Unternehmen führen.
Übermäßige Wartezeiten können jedoch durch verschiedene Ursachen in der Datenspeicherinfrastruktur einer Organisation verursacht werden. Allzu oft konzentriert sich die Speicherbranche auf Eingabe-/Ausgabevorgänge pro Sekunde (IOPS) oder Durchsatz (MB/s) und nicht auf die Latenz, die die Messgröße sein sollte, die im Vordergrund stehen sollte.
Was ist Speicherlatenz?
Unter Speicherlatenz versteht man die Zeit, die ein Speichergerät benötigt, um eine Lese- oder Schreibanforderung zu senden und darauf zu antworten. Konkret handelt es sich bei der Speicherlatenz um die Zeit, die ein Lese- oder Schreibbefehl benötigt, um sich über das gesamte Speicherökosystem zu bewegen, von der Anwendungsanforderung bis zur endgültigen Ausgabe. Es ist die Metrik, die von allen vier Komponenten des Ökosystems beeinflusst wird:
-
-
- Nand Flash
- Speicher-Firmware
- SSD-Controller, der die Firmware betreibt
- Speichersysteminfrastruktur
-
Die Latenz berücksichtigt, wie effizient die Speicher-Firmware ist und wie schnell sie CPU-Ressourcen für die Verarbeitung von Ein-/Ausgabeanforderungen nutzen kann.
Wie bei den meisten Dingen in der Informatik gilt: Schneller ist besser. Je weniger Zeit eine Anfrage benötigt, um das Speichersystem zu durchlaufen, desto geringer ist die Latenz und desto schneller wird die Anfrage verarbeitet. Die Latenz ist einer der wichtigsten Faktoren, die bei der Bewertung der Leistung von Computer-Workloads berücksichtigt werden sollten, insbesondere bei transaktionsintensiven Workloads.
Warum ist die Speicherlatenz so wichtig?
Ein Artikel in Forbes verwendete eine interessante Analogie, um zu erklären, warum Latenz bei der Speicherung so wichtig ist:
„Sie pendeln zur Arbeit und fahren überwiegend auf der Autobahn. Die Autobahn verfügt über bestimmte Eigenschaften wie eine Anzahl von Fahrspuren, die der Bandbreite entspricht, und eine bestimmte Kapazität in Bezug auf die Gesamtzahl der Autos pro Stunde, die dem IOPS entspricht. Das Problem ist, dass Sie, selbst wenn Sie beide Werte kennen, die wichtigste Frage nicht beantworten können: Wie lange wird es dauern, bis Sie zur Arbeit kommen?“
Weiter heißt es, dass die Latenz das letzte Maß ist, also die Zeit, die benötigt wird, um zur Arbeit zu kommen. Das ist es, worauf es bei der Planung Ihres Pendelverkehrs wirklich ankommt. Die Anzahl der Autobahnen und die Kapazität der Autos pro Stunde wirken sich zwar auf die Reisezeit aus, doch die tatsächlich benötigte Zeit ist der wahre Maßstab für die Effizienz.
Wenn die Latenz niedrig ist, gibt es insgesamt weniger Leerlaufzeiten im Computersystem. Die Nutzung von Ressourcen ist effizienter und Unternehmen können tatsächlich mehr Nutzen aus ihrem vorhandenen Speicher ziehen.
Flash-Speicher verbesserte die Latenz in gewisser Weise
Damals, als Festplatten (HDDs) das Speichermedium der Wahl waren, lag die Latenzzeit im Bereich von Millisekunden (einer Tausendstelsekunde). Mit dem heutigen NAND-Flash-Solid-State-Laufwerke (SSDs)Allerdings messen wir die Latenz jetzt in Mikrosekunden (einem Millionstel einer Sekunde). Das ist eine ziemlich große Verbesserung, aber Sie werden vielleicht überrascht sein, dass die Latenz manchmal einen Spitzenwert um den Faktor 10 erreichen kann.
Während Flash-Medien im Zuge der Weiterentwicklung der NAND-Flash-Technologie den Durchsatz erhöhten und die Latenz reduzierten, hatte dies keinerlei Auswirkungen auf die Latenz der anderen Speichersystemkomponenten. SSD-Anbieter können sich durch die Verbesserung der Latenz auf den anderen Ebenen des Speichersystems von der Konkurrenz abheben.
Beispielsweise spielt der SSD-Controller eine sehr wichtige Rolle bei der Erhöhung oder Verringerung der Latenz. Es handelt sich um die Komponente, die den gesamten Prozess des Sendens einer Lese- oder Schreibanforderung durch das System orchestriert. Unabhängig davon, wie schnell das Flash-Speichermedium ist, ist die Latenz immer noch hoch, wenn der Controller diese Daten nicht schnell senden oder empfangen kann. Außerdem kann eine Eingabe-/Ausgabe-(I/O)-Operationsanforderung einem Flash-Chip zugewiesen werden, der bereits an einer I/O-Operation arbeitet, und dadurch in die Warteschlange geraten.
Andere Gründe, warum eine SSD eine höhere Latenz haben könnte, sind:
-
-
- Verschleißausgleich – Es gibt zwei Arten von Verschleißausgleichsmechanismen: dynamisch und statisch. Statisches Wear-Leveling verschiebt regelmäßig die statischen/kalten Blöcke, auf die selten zugegriffen wird, sodass die Zellen mit geringer Auslastung von anderen Daten verwendet werden können. Obwohl diese Technik die Lebensdauer des Geräts verlängern kann, erfordert der komplexe Hintergrundprozess mehrere Vorgänge zum Verschieben statischer Daten, was zu Latenz führt und die Leistung der SSD beeinträchtigt.
- Garbage Collection (GC) – GC ist eine der Hauptursachen für das Problem der Long-Tail-Latenz in Speichersystemen. Die Long-Tail-Latenz aufgrund von GC ist mehr als 100-mal größer als die durchschnittliche Latenz beim 99. Perzentil. Bei diesem Prozess hinter den Kulissen identifiziert der SSD-Controller veraltete Datenseiten im Block und löscht sie, nachdem er alle nützlichen Daten in diesen Blöcken an eine andere Stelle verschoben hat. Dies kann eine SSD verlangsamen und die Latenz erhöhen.
- Medienscan – ein SSD-Controller führt manchmal einen Medienscan im Hintergrund durch, um Medienfehler proaktiv zu finden und zu beheben, bevor sie bei Lese-/Schreibvorgängen ein echtes Problem verursachen. Dies kann zu einem Anstieg der SSD-Latenz führen.
-
Wie Phison die Speicherlatenz behebt
Als einer der branchenführenden Anbieter von PCIe NVMe SSD-Controllern und SSD-Modulen Phison investiert stark in Forschung und Entwicklung– nicht nur um die Technologielösungen von morgen zu entwickeln, sondern auch um die bestehenden Lösungen zu verbessern.
Phison trägt unter anderem dazu bei, die Latenz seiner SSD-Lösungen zu reduzieren:
-
-
- Optimiertes Firmware-Design – Phison kann die Firmware basierend auf verschiedenen Anwendungsfällen und Kundenanforderungen anpassen. Beispielsweise können einige Firmware-Vorgänge so konzipiert werden, dass sie während der Leerlaufzeit ausgeführt werden, um eine Erhöhung der Latenz zu vermeiden. QoS kann mit der hauseigenen Technologie von Phison optimiert werden, um individuelle Unternehmensanforderungen zu erfüllen. In den meisten Fällen kann Phison kundenspezifische SSD-Controller und -Module für spezifische Anforderungen und eine bestimmte Latenzleistung entwickeln, einschließlich extrem niedriger Latenz.
- Proprietärer CoXProcessor 2.0 – dieser Coprozessor enthält einen Hardwarebeschleuniger, der einen Teil der ursprünglichen CPU-Last entlastet und so dazu beiträgt, dass das Speichergerät bei der Ausgabe von Lese-/Schreibbefehlen effizienter wird.
- Dual-CPU-Setups – wobei jede CPU innerhalb einer einzelnen SSD unabhängig arbeitet, kann das Laufwerk gleichzeitig mehrere Befehle zum Lesen/Schreiben verarbeiten. Verschiedene Vorgänge können parallel verarbeitet werden, was die Latenz reduziert.
- Garbage-Collection-Firmware – Phison-SSDs teilen Garbage-Collection-Lasten in kleine Teile auf und verarbeiten sie nach und nach, um die Latenz zu reduzieren und die Konsistenz zu verbessern.
-