Wird das Schreiben auf die Festplatte parallelisiert, wenn sich auf einer Festplatte mehrere Partitionen befinden?

Wird das Schreiben auf die Festplatte parallelisiert, wenn sich auf einer Festplatte mehrere Partitionen befinden?

Ich habe eine 500-GB-Festplatte und versuche herauszufinden, ob sich die Leistung unter Linux verbessert, wenn man sie in drei Partitionen aufteilt. Wenn also mehrere Threads in verschiedene Partitionen auf derselben Festplatte schreiben, – wenn der erste Thread in Partition 1 auf Festplatte 1 schreibt, muss der zweite Thread dann warten, bis er in Partition 2 auf derselben Festplatte schreiben kann?

Antwort1

Eine Festplatte ist ein physisches Gerät mit einem physischen Schreibkopf (SSDs lassen wir einmal außer Acht). Sie kann nur an eine Stelle gleichzeitig schreiben. Mehrere Threads, die gleichzeitig schreiben wollen, konkurrieren miteinander und verlangsamen tatsächlich die Gesamtgeschwindigkeit, da der Kopf mehr nach der richtigen Position suchen muss. Der schnellste Schreibvorgang ist ein langer, kontinuierlicher Schreibvorgang direkt in benachbarte Sektoren.

SSDs haben keinen physischen Aspekt, aber sie haben Beschränkungen hinsichtlich ihrer IO-Geschwindigkeit. Das Hinzufügen von Threads ändert diesen zugrunde liegenden Engpass nicht und erhöht daher nicht die Geschwindigkeit.

Dabei wird vorausgesetzt, dass ein bestimmter Thread bereit ist, mit maximaler Geschwindigkeit zu schreiben. Wenn eine Anwendung von einer anderen Ressource (Benutzereingabe, Netzwerk) abhängt, kann das Hinzufügen von Threads dazu führen, dass das Schreiben scheinbar schneller geht, da diese Threads mehr Arbeit leisten, um Daten „in die Warteschlange zu stellen“, die auf die Festplatte geschrieben werden sollen.

Antwort2

Nein. Im Gegenteil.Gewöhnliche magnetische Festplatten sind am leistungsfähigsten, wenn sie in Bereiche der Festplatte schreiben, die nahe beieinander liegen. Betrachten wir den einfachen Fall, in dem zwei große Dateien geschrieben werden, einmal in fast dieselbe Region der Festplatte, einmal in weit voneinander entfernte Teile. Im ersten Fall kann sich der Schreibkopf praktisch kontinuierlich bewegen, im zweiten Fall wird beträchtliche Zeit darauf verwendet, den Kopf zwischen zwei weit voneinander entfernten Punkten zu bewegen.

Gängige Dateisystemtreiber sind bereits hochgradig optimiert, um sinnvolle Entscheidungen darüber zu treffen, wann und wo mit dem Schreiben fortgefahren werden soll. Viele dieser Optimierungen gehen verloren, wenn Sie gleichzeitig in völlig unterschiedliche Bereiche der Festplatte schreiben und dabei zwei Instanzen des Dateisystemtreibers verwenden, von denen jede ihre eigene eingeschränkte Sicht auf ausstehende Schreibvorgänge hat.


Sogar SSDs (die nicht mehr Zeit für die Bewältigung der physischen Distanz aufwenden) schneiden besser ab, wenn große Bereiche auf einmal geschrieben werden (nur ganze Blöcke abdecken, anstatt hier und da kleine Schreibvorgänge durchzuführen). Sie können daher davon ausgehen, dass ein einzelnes Dateisystem immer noch eine bessere Leistung bietet als mehrere Dateisysteme auf separaten Partitionen, selbst im Fall von SSDs.


Wenn Ihre Idee für die Partition auch darauf beruht, dass Sie sicherstellen möchten, dass ein volles Dateisystem nicht das Schreiben in die anderen blockiert (indem Sie für jeden Ordner einen unterschiedlichen maximalen Speicherplatz reservieren), gibt es auch dafür Lösungen für einzelne Dateisysteme. Das Schlüsselwort, nach dem Sie in diesem Fall suchen, lautetQuote.

verwandte Informationen