it-swarm.com.de

Warum ist meine Festplatte bei den 4K-Geschwindigkeitstests so langsam?

Was ist los mit meiner Geschwindigkeit bei 4K? Warum ist es so langsam? Oder soll es so sein?

Screenshot of benchmark

Ist die Geschwindigkeit in Ordnung? Warum habe ich so niedrige Geschwindigkeit bei 4K?

46
User6539

Das, worauf Sie stoßen, ist typisch für mechanische Festplatten und einer der Hauptvorteile von SSDs: Festplatten haben die Leistung fürchterlichDirektzugriff).

In CrystalDiskMark bedeutet "Seq" sequentiellerZugriff, während "4K" zufälligerZugriff (in Blöcken von jeweils 4 KB) bedeutet, da einzelne Bytes viel zu langsam und unrealistisch wären1).


Definitionen

Grundsätzlich gibt es zwei Möglichkeiten, auf eine Datei zuzugreifen.

Sequentieller Zugriff

Sequentialaccess bedeutet, dass Sie die Datei mehr oder weniger byteweise nacheinander lesen oder schreiben. Wenn Sie beispielsweise ein Video ansehen, würden Sie das Video von Anfang bis Ende laden. Wenn Sie eine Datei herunterladen, es wird auf der Festplatte heruntergeladen und geschrieben von Ende Anfang an.

Aus Sicht der Festplatte werden Befehle wie "Block 1 lesen, Block 2 lesen, Block 3 lesen, Byte-Block 4 lesen" angezeigt.1.

Zufälliger Zugriff

Randomaccess bedeutet, dass es kein offensichtliches Muster für das Lesen oder Schreiben gibt. Dies muss nicht wirklich zufällig sein, sondern bedeutet wirklich "nicht sequentiell". Wenn Sie zum Beispiel viele Programme gleichzeitig starten, ll Notwendigkeit, viele Dateien verstreut um das Laufwerk zu lesen.

Aus der Sicht des Laufwerks werden Befehle wie "Block # 56 lesen, Block # 5463 lesen, Block # 14 lesen, Block # 5 lesen" angezeigt.

Blöcke

Ich habe einige Male Blöcke erwähnt. Da Computer mit so großen Größen (1 MB ~ = 1000000 B) beschäftigen, auch mit sequenziellem Zugriff ist ineffizient, wenn Sie das Laufwerk für jedes einzelne Byte fragen - es gibt zu viel Geschwätz. In der Praxis wird die Betriebssystem-Anfragen Blöckevon Daten von der Platte zu einem Zeitpunkt.

Ein Blockist nur ein Bereich von Bytes; Block # 1 kann beispielsweise die Bytes # 1- # 512 sein, Block # 2 die Bytes # 513- # 1024 usw. Diese Blöcke sind entweder 512 Bytes oder 4096 Je nach Laufwerk große Bytes. Aber auch nach dem Umgang mit Blöcken anstelle einzelner Bytes ist der sequentielle Blockzugriff schneller als der wahlfreie Blockzugriff.


Performance

Sequentiell

Sequentieller Zugriff ist im Allgemeinen schneller als Direktzugriff. Dies liegt daran, dass das Betriebssystem durch sequenziellen Zugriff unddas Laufwerk vorhersagen kann, was als Nächstes benötigt wird, und einen großen Block im Voraus laden kann. Wenn Sie die Blöcke "1, 2, 3, 4" angefordert haben, das Betriebssystem Sie können davon ausgehen, dass Sie als Nächstes "5, 6, 7, 8" möchten, und das Laufwerk wird angewiesen, "1, 2, 3, 4, 5, 6, 7, 8" auf einmal zu lesen Lesen Sie den physischen Speicher auf einmal ab und nicht "suche nach 1, lese 1,2,3,4, suche nach 5, lese 5,6,7,8".

Oh, ich habe erwähnt, dass ich nach etwas suchen soll. Mechanische Festplatten haben eine sehr langsame Zeit suchen, weil, wie sie physisch angelegt: sie bestehen aus einer Reihe von schweren metallisierten Scheiben herum spinnen, mit physischen Arme hin und her Bewegen der Platte zu lesen. Hier ist ein Video von einer offenen HDD, wo Sie die Spinnscheiben und die beweglichen Arme sehen.

 Diagram of HDD internals
Bild von http://www.realtechs.net/data%20recovery/process2.html

Dies bedeutet, dass zu jedem Zeitpunkt nur das Datenbit unter dem Kopf am Ende des Arms gelesen werden kann. Das Laufwerk muss auf zwei Dinge warten: Es muss warten, bis sich der Arm zum rechten Ring ("Spur") der Festplatte bewegt, und außerdem müssen Sie warten, bis sich die Festplatte dreht, damit die erforderlichen Daten gelesen werden Kopf. Dies ist bekannt als suche 2. Sowohl die sich drehenden als auch die sich bewegenden Arme benötigen physische Zeit, um sich zu bewegen, und sie können nicht viel beschleunigt werden, ohne Schaden zu riskieren.

Dies dauert in der Regel sehr lange, weitaus länger als das eigentliche Ablesen. Wir sprechen von> 5 ms, nur um dorthin zu gelangen, wo das angeforderte Byte lebt, während das tatsächliche Lesen des Bytes auf etwa 0,00000625 ms pro gelesenem sequentiellen Byte (oder 0,003125 ms pro 512-B-Block) hinausläuft.

Zufällig

Zufälliger Zugriff bietet dagegen nicht den Vorteil der Vorhersehbarkeit. Wenn Sie also 8 zufällige Bytes aus den Blöcken "8,34,76,996,112,644,888,341" lesen möchten, muss das Laufwerk auf "8 suchen, 8 lesen, 34 suchen, 34 lesen, 76 suchen, 76 lesen, ..." gehen. . Beachten Sie, wie es für jeden einzelnen Block erneut suchen muss? Statt durchschnittlich 0.003125ms pro sequenziellem 512 B-Block, dann ist es jetzt im Durchschnitt (5ms suchen + 0.003125ms Lesen) = 5.003125ms pro Block. Das ist viele, vielemal langsamer. Tausende Male langsamer, in der Tat.

SSDs

Zum Glück haben wir jetzt eine Lösung: SSDs.

Eine SSD, ein Solid State Drive, ist, wie der Name schon sagt, Solid State. Das heißt, sie hat keine beweglichen Teile . Außerdem bedeutet die Art und Weise, wie eine SSD aufgebaut ist gibt es (effektiv3) keine Notwendigkeit, die Position eines Bytes nachzuschlagen; es schon kennt. Deshalb hat eine SSD viel weniger Performance-Lücke zwischen sequentiellem und zufälligem Zugriff.

Es gibt immer noch eine Lücke, aber dies kann weitgehend darauf zurückgeführt werden, dass nicht vorhergesagt werden kann, was als nächstes kommt, und dass preloadingdiese Daten, bevor sie angefordert werden).


1 Genauer gesagt werden LBA-Laufwerke aus Effizienzgründen in Blöcken von 512 Byte (512n/512e) oder 4 KB (4Kn) adressiert. Außerdem benötigen echte Programme fast nie nur ein einzelnes Byte.

2 Technisch gesehen bezieht sich seeknur auf die Armbewegung. Das Warten auf die Datenrotation unter dem Kopf ist Rotationslatenzzusätzlich zur Suchzeit).

3 Technisch gesehen haben sie Nachschlagetabellen und ordnen sie aus anderen Gründen neu zu, z. Wear Leveling, aber diese sind im Vergleich zu einer Festplatte völlig vernachlässigbar ...

84
Bob

4K bezieht sich auf zufällige E/A . Dies bedeutet, dass die Festplatte an zufälligen Stellen in der Testdatei aufgefordert wird, auf kleine Blöcke (4 KB) zuzugreifen. Dies ist eine Schwäche der Festplatten; Die Fähigkeit, auf Daten in verschiedenen Bereichen der Platte zuzugreifen, ist durch die Geschwindigkeit, mit der sich die Platte dreht, und durch die Geschwindigkeit, mit der sich die Lese-/Schreibköpfe bewegen können, begrenzt. Sequentielle E/A , bei denen auf aufeinanderfolgende Blöcke zugegriffen wird, sind viel einfacher, da das Laufwerk die Blöcke einfach lesen oder schreiben kann, während sich die Festplatte dreht.

Ein Solid-State-Laufwerk (SSD) hat kein solches Problem mit zufälligen E/A-Vorgängen. Es muss lediglich nachgeschlagen werden, wo sich die Daten im zugrunde liegenden Speicher befinden (normalerweise NAND-Flash, kann 3D XPoint oder sogar DRAM sein) und gelesen werden oder schreiben Sie die Daten an die entsprechende Stelle. SSDs sind vollständig elektronisch und müssen nicht auf eine rotierende Festplatte oder einen sich bewegenden Schreib-/Lesekopf warten, um auf Daten zuzugreifen. Dies macht sie in dieser Hinsicht viel schneller als Festplatten. Aus diesem Grund erhöht ein Upgrade auf eine SSD die Systemleistung erheblich.

Randnotiz: Die sequentielle E/A-Leistung auf einer SSD ist häufig auch viel höher als auf einer Festplatte. Bei einer typischen SSD sind mehrere NAND-Chips parallel zum Flash-Speicher-Controller geschaltet, und sie können gleichzeitig darauf zugreifen. Durch die Verteilung der Daten auf diese Chips wird ein RAID 0-ähnliches Laufwerkslayout erzielt, das die Leistung erheblich steigert. (Beachten Sie, dass viele neuere Laufwerke, insbesondere billigere, einen NAND-Typ mit der Bezeichnung TLC NAND verwenden, der beim Schreiben von Daten tendenziell langsam ist. Laufwerke mit TLC NAND verwenden häufig einen kleinen Puffer mit schnellerem NAND, um eine höhere Leistung für kleinere Schreibvorgänge bereitzustellen, können dies jedoch verlangsamen dramatisch, sobald der Puffer voll ist.)

2
bwDraco