Fördert das gleichzeitige Herunterladen / Kopieren von Dateien die Fragmentierung?

10

Fördert das gleichzeitige Schreiben mehrerer Dateien auf eine Festplattenpartition die Fragmentierung? Würden diese Dateien interlaced auf die Festplatte geschrieben?

Beispiele:

  • Mehrere Dateien gleichzeitig aus dem Internet herunterladen
  • Kopieren von Dateien aus verschiedenen Quellen auf dieselbe Partition
  • Mehrere Torrents herunterladen

Unterscheidet sich das zwischen verschiedenen Betriebssystemen? Ist das Zuweisen von Speicherplatz a priori für die gesamte Datei eine anwendungsspezifische Funktion?

Jonathan
quelle
Gute Frage. Ich kann nur feststellen, dass dies von der genauen Implementierung des Dateisystemtreibers abhängt, die enger als das Betriebssystem ist.
Whitequark
4
Dies wird eine komplexe Antwort sein ... Ja, es ist betriebssystem- und anwendungsspezifisch. Einige Anwendungen weisen Speicherplatz zu, andere nicht. Manchmal gibt es keine Möglichkeit, im Voraus zu wissen, wie viel zugewiesener Speicherplatz erforderlich ist, sodass der Anwendungstyp möglicherweise stärker fragmentiert wird. Außerdem wird es dateisystemspezifisch sein (möglicherweise verwenden Sie fat32 oder NTFS in Windows)
Jarvin

Antworten:

7

Dies hängt stark vom verwendeten Dateisystem, zum Teil vom Betriebssystem sowie vom Programm ab, mit dem die Datei geöffnet wird. Es liegt an der Anwendung, beim Erstellen einer neuen Datei die richtige Speichermenge anzufordern, und es sind die Funktionen des Betriebssystems und des Dateisystems, die das Öffnungs- und Erweiterungsverhalten dieser Apps beeinflussen, wenn sie nicht wissen, wie viel Speicherplatz vorhanden ist zu verlangen.

Wenn ein Programm das Betriebssystem nach einer 4,2-GB-Datei fragt, findet das Betriebssystem einen großen Speicherplatz mit 4,2 GB frei. Andernfalls erhält das Programm genügend Freiraumfragmente, um die Datei zu speichern. Hier gibt es einige Variablen, dies ist vereinfacht.

Wenn ein Programm das Betriebssystem nach einer 4-KB-Datei fragt, gibt das Betriebssystem diese aus. Wenn das Programm immer wieder nach neuen zusammenhängenden 4-KB-Segmenten fragt (Sie laden eine Datei herunter und das Programm wusste nicht, wie groß sie ist), bis es 4,2 GB Speicherplatz erhält, gibt das Betriebssystem gerne Speicherplatz. Dies ist der Fall, wenn Dateisystem und Betriebssystem Unterschiede machen.

XFS basiert beispielsweise auf der Ausdehnung, sodass zusätzlicher Speicherplatz so lange zusammenhängend ist, bis dies nicht mehr möglich ist. Außerdem kann XFS so konfiguriert werden, dass neue Dateien mit einem bestimmten Speicherplatz vorab zugewiesen werden, wodurch die Fragmentierung weiter minimiert wird (nützlich für Speichervolumes von virtuellen Maschinen sowie für DVD-ISO-Volumes).

EXT2 / 3, NTFS und ich glaube Reiser werden zusammenhängend zuweisen, bis es nicht mehr kann. Dann werden neue Fragmente gestartet. Jedes Fragment könnte jedoch 4 KB groß sein.

Nehmen wir den schlimmsten Fall. Zwei parallele 4,2-GB-Dateien werden gleichzeitig 4 KB gleichzeitig im selben Verzeichnis gespeichert. Das gleiche Verzeichnis gehört zum schlimmsten Fall, da einige OS / FS-Kombinationen versuchen, Dateien im selben Verzeichnis nebeneinander zu halten. Bei einigen OS / FS-Kombinationen führt dies dazu, dass die beiden Dateien vollständig auf der Festplatte verschachtelt sind. Für andere, die versuchen, neu geöffnete Dateien in verschiedenen freien Segmenten zu speichern, gibt es möglicherweise überhaupt keine oder nur eine sehr geringe Fragmentierung.

Ein bisschen auf XFS (ich denke, ext4 und btrfs können das auch). In diesem Fall beträgt die Interleave nicht 4 KB, sondern alles, worauf Sie beim Mounten des Volumes Ihren Wert für die Zuordnungsgröße festgelegt haben. Wenn Sie 256 MB festlegen, erhalten Sie eine 4,2-GB-Datei mit 17 Fragmenten anstelle von über einer Million. Nützlich für Volumes, auf denen große Dateien wie Medienserver gespeichert sind. Nicht nützlich für Volumes, in denen viele kleine und einige große Dateien gespeichert sind.

Aus diesem Grund öffnen Bittorrent-Clients beim Starten eines neuen Downloads entweder Dateien mit geringer Dichte oder weisen vor dem Start nur die angegebene Gesamtgröße zu.

Beim Kopieren von Dateien von verschiedenen Teilen derselben Partition (oder sogar von anderen Partitionen) weiß der Kopiervorgang theoretisch, wie groß die kopierten Dateien sind, sodass vom Betriebssystem von Anfang an Speicherplatz der entsprechenden Größe angefordert wird. Zuordnungen für neue Dateien müssen nicht angehängt werden.

SysAdmin1138
quelle