NVMe schneller als eine SATA-SSD? Diskussion und Erläuterung

  • Guckux


    Ich möchte ja keinen Streit vom Zaun brechen, aber wenn ich etwas lese wie:

    "Würde mir imho eigentlich keine QLC SSDs kaufen. Niemals als Bootlaufwerk."

    Schüttel ich persönlich den Kopf. Wieso?


    Anmerkung: manches mag als subjektiv ausgelegt werden, vieles sind auch Fakten.


    Früher gab es nur Festplatten auf Magnetbasis, ich lass ich jetzt mal MFM und RLL weg, zu alt ;)


    Eine typische Festplatte ist ein Magnetspeicher, hat rotierende Scheiben, über welche idR mehrere Köpfe mit minimalem Abstand sich bewegen. Die Geschwindigkeit solch einer Festplatte wird primär definiert über die Rotationsgeschwindikeit der Magnetscheibe (typisch consumer: 5,400 und 7,200rpm, Enterprise 10,000 und 15,000 rpm) und die Datendichte und 2tens über die sogenannten seek-Zeiten, welche die Zeit bemisst, in der ein Kopf von einer Spur zu einer anderen benötigt (consumer >>3ms, Enterprise ca 3ms).

    Diese Werte definieren eine sogenannte "sustained" Transferrate, sprich EIN Lese ODER EIN Schreibvorgang. Resultierend daraus hat man eine "maximale" Datentransferrate - also zB beim kopieren einer 10GB großen Datei von einem Medium zu einem anderem.

    Typisch sind Werte beim Lesen/Schreiben von bis zu 220MB/s / 160MB/s.


    Eine SSD oder NVMe ist eine "logische Festplatte" aus Speicherchips ohne rotierende Scheibe - der wirklich wahre Vorteil sind die nicht "vorhandenen" Seeks (ca 0.03ms - ein hundertstel von der Magnetplatte).

    Eine SATA-SSD kann den SATA-Bus durchaus ausreizen, eine NVME wird direkt an die PCI-Express-lanes angebunden. Auf dem SATA-Bus sind hierdurch lockere 500MB/s realisierbar und im NMVE-Bereich Werte von 3,000MB/s keine Seltenheit mehr.


    Die 2te Definition eines Massenspeichers, wird über randomized access definiert, Maßeinheit sind die sogenannten IOPS (Input/Output per Second). Meiner Meinung nach der "interessanteste" Wert.

    Typische consumer SATA-Festplatten haben meist bis 170 IOPS, Enterprise-Festplatten durchaus um die 300 IOPS.

    Diese IOPS sind abhängig von der sek-Geschwindigkeit und nicht nur von Spur zu Spur, wesentlich relevanter über viele Spuren hinweg - und hier gewinnt die Enterprise-Fraktion mal so richtig...

    SATA-SSDS haben idR angegebene IOPS von durchaus um die 80,000 (das ca 400-fache einer Magnetplatte) und eine NVMe irgendwo zwischen 200,000 und 500,00 (round about, unterschiedlich bei Lesen und Schreiben und je nach verwendeten Speicherchips, SLC (Single Bit), "2Bit", TLC (3Bit) und QLC (4Bit).

    TLC und QLC-Massenspeichern ist häufig ein SLC-"cache" vorgeschaltet, der über seine Größe, welche unterschiedlich sein kann, den langsameren TLC oder QLC-Speicher "entlastet". Ist dieser "gefüllt" und kommt dem Schreiben auf dem langsameren nicht mehr hinterher, bricht die Geschwindigkeit ein - für den typischen Anwender meist nicht spürbar - außer er kopiert zig GBs in einem Rutsch.


    Denn: ein einzelner Datei-Stream ist ein "untypischer" Anwendungsfall, bei einem Systemstart werden neben dem "Brocken" eines Kernels (13MB im macOS High Sierra) und wenigen anderen Dateien im Bereich von wenigen MB viele anderen Dateien geladen. Das macOS High Sierra hat ein Verzeichnis /System/Library von 7.6 GB, verteilt auf >> 500,000 Dateien (=> durchschnittliche Dateigröße 15kB).

    Es wird nicht alle "geladen", aber einiges... ;)


    Wenn man sich dergleichen zu Gemüte führt und "visualisiert", ergibt sich logischerweise der größte Geshwindkeitszuwachs durch die schnelleren Zugriffszeiten und nicht durch den hohen Durchsatz. Denn - beim Starten des Betriebssystems wird auf tausende von Dateien zugegriffen und geladen, aber nicht die Masse an großen Dateien...


    So, ich hoffe ich habe keine großen Patzer hinterlassen und habe jetzt auch gelernt, daß MLC KEIN 2-Bit Speicher ist, sondern nur für MULTI-Bit steht, also auch für TLC und QLC ;)


    Ein Sonderfall im Consumerbereich, welcher aus dem Enterprise resultiert ist der HSM (Hierarchical Storage Management) - bei Apple Fusion Drive genannt und auch als "SSHD" (Solid State Hard Disk) benannt.

    HSM habe ich kennengelernt als eine Kombination eines Festplattenspeichers mit Band-Technologie - Dateien, auf welche lange nicht zugegriffen wird, werden auf Magnetbänder ausgelagert (wesentlich günstiger, "sicherer" und auch energieeffizienter, ideal bei Langzeitarchiven).

    Später wurden "caches" in die Magnetspeicher eingebaut von wenigen MBs...

    Fusion realisiert den HSM über die Kombination einer SSD und eines Magnetspeichers - das Datenmanagement übernimmt das macOS.

    SSHD beinhaltet alles auf einer Magnetplatte, dort ist im Controller zB 8GB SLC-Speicher eingebaut, Datenmanagement vom Plattencontroller.


    Auch heutige Enterprise Storage-Systeme realisieren das, EMC hat (oder hatte) Systeme, welche auch 3-stufig geschaltet wurden, Vorne Flash (SSD), dahinter SAS (Enterprise Magnet-Platten) und zuletzt NL-SAS (Near-Line SAS, in meinen Augen SATA). Dadurch war es möglich, bei rund 40 Platten mit 40TB netto (mehrere Raid5 und Raid6 Verbünde) dauerhaft >15,000 IOPs beim nächtlichen Backup zu liefern - Backup ist DER Stresstest schlechthin :D .


    Wer es praktisch ausprobieren möchte: es ist recht einfach, aber zeitintensiv:

    Bootvorgang mit SATA-Magnetplatte stoppen.

    Bootvorgang mit SATA-SSD stoppen.

    Bootvorgang mit NVME-SSD stoppen.

    Der massiv größte Unterschied liegt zwischen Magnet zu SSD.


    Meine Erfahrung war mit Windows7: 1min Magnetplatte, dann auf SSHD, nach dem 4ten oder 5ten Starten, nur noch ca 15sec...


    Aber QLC deswegen zu verteufeln - nö, da sind meist 32 oder 64GB SLC-cache vorgeschaltet - das MERKT keiner (wie schrieb mal die c't: Das ein Anwender einen Performance-Gewinn im täglichen Betrieb verspürt, muss die Performance mind. Faktor 2 sein).


    So, genug geschrieben - jetzt dürft ihr mich "zerlegen" ;)

    Bye

    Stefan


  • Ich finde das Thema sehr interessant, vor allem, weil selbst nur ein Notebook mit NVMe nutze, welches im Alltag aber auch nicht zügiger läuft, als meine alten Kisten mit Sata-SSDs. Allgemein fällt es mir schwer zwischen den verschiedenen SSDs Geschwindigkeitsunterschiede auszumachen. Nur meine (9 Jahre+) alte 80GB Intel sticht hervor, welche sich doch minimal träger anfühlt, als der Rest.

    "iMac15,1": Gigabyte H77-D3H; i5-3550; 12GB 1333MHz; MSI HD7750 passiv @ macOS 11.0.1 « OpenCore v063

    PowerBook's & MacBook's 10.4.11 - 10.15.7

  • NVMe SSD ist vor allem beim Datei auslesen schneller als eine SSD, beim zocken macht es beim laden zwischen 0,5-1,5 sek aus was nicht viel ist da NVMe SSDs viel mehr kosten als normale SSDs beim Booten von Windows macht es noch weniger aus wie es bei MacOS ist kann ich leider nicht sagen. Wer also viel Daten verschiebt bzw auslest sollte es sich mit ner NVMe SSD überlegen für alles andere reicht ne normale SSD

  • 416c


    Es ist auch von der Hardware mit abhängig...

    Aber schön, daß Dein subjektiver praktischer Eindruck mich bestätigt - respektive was ich geschrieben habe...

    Schließlich muss auch das Betriebssystem das Ganze verwalten - hier ist zB im MP (multiprocessing -> viele Prozesse) ein großes unix (wie Solaris) hervorragend geeignet, weil dieses "hervorragend" context-switching beherrscht.

    Nicht zu unterschätzen ist auch die filesystem-Verwaltung: Ich kenne kein filesystem, welches mit zig-tausend Dateien in einem Verzeichnis (und oder directories) performant zurechtkommt. Erst letztens war ich bei einem Kunden, in einem log-Verzeichnis waren etwa 1.7 Millionen Dateien, das ls darauf hatte fast 10min Minuten gebraucht!


    Mir ist noch eine kleine Ergänzung eingefallen:


    Wo spielt (meiner Meinung nach) eine NVME (bisschen besser als ne SSD ;) ) so richtig ihre Leistung aus?

    Bei "schmalen" Systemen, wo der Hauptspeicher klein ist, respektive voll genutzt wird:

    Moderne Systeme "swappen", sprich, nicht genutzte Arbeitsspeicherinhalt wird in eine swap-Datei ausgelagert. Unter unix legt man hierzu idR eine eigene swap-partition an, welche vom Betriebssystem "intelligent" verwaltet wird -> Billiger Arbeitsspeicher"Ersatz".

    Unter Windows kann man eine "SWAP-Datei" (Auslagerungsdatei) definieren, default ist diese "dynamisch" (ieehhh, also 4-16GB oder mehr von Windows, wird also bei Bedarf größer). Sinnvoll ist es hier, eine "feste" Größe zu definieren, damit diese Datei als EINE Datei (nicht fragmentiert im Dateisystem) angelegt wird (Magnetspeicherzeiten).


    Photoshop: Hat seine eigene "virtuelle" Speicherauslagerung, ich habe vor 25 Jahren ein Kundensystem beschleunigt, indem ich beim Quadra 950 mit 256MB Ram, die Hälfte davon als Ramdisk angelegt habe und diese von PS für die virtuelle Auslagerungsdatei nutzen ließ (und von nichts anderem!).

    Heute: PS-Auslagerungsdatei auf ne NVME...

    Gleiches gilt für die Videobearbeitung - die zu bearbeitenden Dateien gehören auf die NVME, ob das System auf ner SSD liegt, spielt da keine Rolle und sollte die Videobearbeitungssoftware ebenfalls eine eigene Definition besitzen für eine "Auslagerungsdatei" - auf die NVME damit...

    Bye

    Stefan