08.02.2019 (kfr)
3.6 von 5, (11 Bewertungen)

Unterschiede der Performance-States von SSDs

Leserfrage: Gängige Meinung: SSDs sind schnell. In der Praxis gibt es aber dann doch einige Unterschiede, so sind vielen die verschiedenen Performance-States von SSDs und Flash-Speichern nicht bekannt: FOB, steady, burst and transition. Was steckt genau dahinter? Warum sollte man die kennen?

Antwort Doc Storage:

Gut, behandeln wir zunächst einmal die Begrifflichkeiten in der genannten Reihenfolge.

FOB: Meint den Zustand eines Mediums direkt nach dem Auspacken (fresh out of box). Also den Zustand, wie das Laufwerk vom Hersteller ausgeliefert wird. Die Speicherzellen der SSD haben nur ein paar, wenn überhaupt irgendwelche Schreib- oder Löschzyklen (P/E, program/erase) durchlaufen. Sie verfügt ausschließlich über beschreibbare Zellen.

Steady: Die SSD verändert ihr Leistungsverhalten über einen längeren Zeitraum nicht. Dies wird durch das »Absterben« des Übergangs-Leistungsverhaltens erklärt. Eine SSD kann über ihre Nutzungsdauer in mehrere Steady-States geraten.

Burst: Im Gegensatz zum Steady-State der Zustand einer SSD, in dem über eine normalerweise relativ kurze Zeit wesentlich höhere Leistung erzielt wird. Burst-States entstehen aus einem und enden auch wieder in einem längeren Steady-State.

Transition: Der Zustand einer SSD, die von einem Steady-State in einen Burst-States oder im Gegenteil von einem Burst-States in einen Steady-State wechselt.

Performance-States: Typischer Lebenszyklus einer SSD

Bei einer typischen SSD mit 500 GByte Kapazität haben wir folgendes Verhalten beobachtet: Das Medium beginnt (natürlich) nach dem ersten Einschalten in einem FOB-State, der gleichzeitig der leistungsstärkste Burst-State sein wird, den die SSD jemals erreicht. Die Speicherzellen sind gelöscht, können also sofort und ohne weitere notwendige Schritte beschrieben werden. Mit ungefähr 15 GByte geschriebenen Daten folgt ein Transition-State, in dem die Leistung relativ zügig auf ein Drittel bis ein Viertel des FOB-States abfällt und dann bei 25 GByte in einem Burst-State verbleibt, dessen Leistung allerdings langsam bis ungefähr 70 GByte, immer mehr abnimmt. Danach verfällt das Medium bei einem Achtel bis Zehntel der Leistung in einen Steady-State, der ungefähr so lange anhält wie der vorhergehende Burst-State, also bis knapp unter 100 GByte.

Nach einem weiteren, recht kurzen Transition-State sinkt die Leistung weiter auf ungefähr die Hälfte des letzten Steady-States ab und verharrt dort bis zum Auffüllen des gesamten Mediums. Die Stufen in der Leistungskurve zeigen unter anderem an, wann die entsprechenden Algorithmen im Controller (Wear-Leveling) beginnen zu greifen und wie viele Zellen durch deren Funktion ausgelesen, verlegt und neu geschrieben werden müssen.

Man beachte hier die vielen »ungefährs«. Natürlich wird sich jedes Medium, je nach Größe, Art der Speicherzellen und Controller, anders verhalten. Dieses Verhalten kann allerdings sehr einfach mit den entsprechenden Werkzeugen der Hersteller ermittelt werden. Zu beachten ist allerdings weiterhin, dass ein solcher Test durch seine vielen Schreibvorgänge nicht gerade zur Verlängerung der Lebensdauer der SSD beiträgt. Leider wird kein Hersteller die Funktion seiner Algorithmen und die dadurch entstehenden Einflüsse auf die Leistungskurve von Laufwerken veröffentlichen.

Gruß
Doc Storage

Kommentare (9)
12.02.2019 - Doc Storage

Lieber "mress",

auch auf die Gefahr hin, daß ich dafür jetzt wieder als ewig gestriger Klugscheißer hingestellt werde: man kann und sollte eben nichts garantieren, was auf Annahmen (nichts anderes sind Angaben von Herstellern - meistens), Schätzungen oder Hochrechnungen beruht. Auch und vor allem dann nicht, wenn man durch den Abschluß von SLAs mit Fachabteilungen oder - noch schlimmer - mit Kunden damit Geld verdienen möchte.

Ein Speichersystem mit seinem Zusammenspiel unzähliger Komponenten aus Hard- und Software erlaubt es kaum, auf Basis von groben Angaben wie Leistung einzelner Laufwerke zu bestimmten Zeitpunkten oder in bestimmten Zuständen Rückschlüsse auf die Gesamtleistung des Systems zu ziehen. Da müssen wir - wie gesagt, man kann mich gern dafür hassen - eben unsere Hausaufgaben machen, das entsprechende System während der Tests (oh ja, um die kommen wir vor dem Anbieten von SLAs nicht herum) in die entsprechenden Last- und Füllzustände versetzen und entsprechend mit Repräsentanzdaten und Sonderfällen solange durchnudeln, bis wir uns einigermaßen über die Leistung des Arrays in seiner ganz speziell bei uns aufgebauten Konfiguration sicher sind. Das ist dann die "Praxis", die hier jeder so eindringlich fordert...

Liebe Grüße
Doc Storage

12.02.2019 - mress

Natürlich hat dieses Verhalten von SSDs sehr viel Auswirkungen in der Praxis! Insbesondere dann, wenn ich meinen Kunden (seien es interne oder externe) Performance als Service verkaufe - denn relevant ist die Performance die ich im schlechtesten Fall wirklich garantieren kann. Und wenn ich dann nach den Herstellerangaben (der mir die meistens die für ihn optimalen Performancewerte dokumentiert) gehe und nicht weiss, daß die Steadyperformance bei einem Drive der im Cleanstate 400 MB/s dann plötzlich nur noch 100 MB/s liefert, dann bekomme ich ganz schnell Probleme mit meinen Serviceleveln.

10.02.2019 - Jobe

Der vermeintliche Leser scheint doch genau diese Frage so formuliert zu haben... Zitat: Was steckt genau dahinter? Warum sollte man die kennen?

also ging ich davon aus ... aber ok, dann halt nicht ...
mein Fehler ...

10.02.2019 - Doc Storage

Hallo, alle zusammen!

So, jetzt wollen wir mal alle ganz ruhig in eine Tüte atmen.

(1) Ich habe lediglich die Frage eines Lesers nach den verschiedenen Stati beantwortet. Ich habe mir nicht die Frage gestellt, WARUM man das wissen sollte. Darum ging es hier auch gar nicht. Und auch nicht um einen irgendwie gearteten Praxisbezug.

(2) Die Antwort bezieht sich, wie ich schon im Artikel erwähnt habe, lediglich auf die Erfahrungen mit einer speziellen 500-GByte-SSD, NATÜRLICH nicht auf alle Typen, und vor allem nur auf die Leistungen einer einzeln angeschlossenen Einheit.

(3) NATÜRLICH werden sich mehrere oder viele SSDs in einem Speichersystem zu den angeschlossenen Rechnern hin wesentlich anders verhalten als nur ein Laufwerk in einem Standalone-System. Der in Speichersystemen verwendete Cache und vor allem die dort verwendeten Algorithmen werden die Leistung NATÜRLICH positiv beeinflussen und die Sprünge zwischen den verschiedenen Stati eines einzelnen Laufwerkes abpuffern.

Ich hoffe, daß wir uns damit jetzt wieder sinnvolleren Diskussionen widmen können.

Liebe Grüße
Doc Storage

08.02.2019 - LHL

... ich würde Jobe zustimmen - für die Gesamtperformance eines Speichersystems dürfte die Leistungskurve einer einzelnen SSD unerheblich sein.

08.02.2019 - LHL

Hm, zuletzt haben wir also eine Transition von einem Steady-State (knapp unter 100GB) zum "letzten" Steady-State (bis Auffüllen des gesamten Mediums)? Was ist eigentlich mit "Auffüllen des gesamten Mediums" gemeint - die Nutzung fast aller Speicherzellen (mit Ausnahme der für die Kapazität nicht sichtbaren Spare-Zellen) oder tatsächlich die Nutzung der vollen 500GB Kapazität? Wie schon im Artikel dargestellt zeigt die Leistungskurve die "spezifische" Controller Charakteristik im Umgang mit der Verwaltung der Speicherzellen. Die ist - nach meiner Beobachtung - schon sehr verschieden zwischen Herstellern im Consumer-Bereich (manchmal auch schon bei gleichem Hersteller zwischen unterschiedlichen Modellen) und noch mal deutlich anders im professionellen Marktsegment. Insofern wäre ich skeptisch, ob man von einer Messung einer Platte mit einer bestimmten Kapazität eines bestimmten Herstellers schon auf ein allgemeingültiges Leistungsverhalten von SSDs schließen kann. Der Controller mit seiner Firmware (und den darin enthaltenen Verwaltungsalgorithmen) einer SSD ist heutzutage viel entscheidender für die Leistung einer Festplatte als es noch bei den drehenden Spindeln der Fall zuletzt war. Da gab's den wesentlichen Unterschied nur zwischen SAS und SATA (-Controllern) und der Umdrehungsgeschwindigkeit (bei gleicher Kapazität).

08.02.2019 - Jobe

Ok, somit waere die erste Frage beantwortet, was steckt dahinter? Aber mir fehlt der praktische Anteil in der Antwort zur Frage: Warum sollte man es kennen...
In der Regel bekommt ein Anwender dies gar nicht mit da verschiedene Caches und "uebergeordnete" Algorithmen dies abfangen.
Also welche Praxisrelevanz ergibt sich?

08.02.2019 - Doc Storage

Da kann ich eigentlich nur so entgegnen, daß man sich mit allem technischen, was man benutzt, eben auch ein wenig auskennen sollte. Meine Erfahrung mit einem entsprechenden Test einer SSD habe ich hier dargelegt (= Praxis), und darauf hingewiesen, daß sich jedes andere Flash-Medium mit ähnlichen Algorithmen sich ähnlich verhalten wird.

Aber wird sind natürlich für Vorschläge offen.

08.02.2019 - Jobe

aha ... und nun? was bedeutet das für die Praxis? nix? aha ...