M
Mickey Cohen
Gast
Hallo,
warum dauert es um so viel länger, viele kleine dateien zu kopieren als eine große datei? insbesondere beim kopieren von dateien von einer SSD auf eine jungfräuliche SSD ist mir das neulich wieder aufgefallen.
ich habe das natürlich gegoogelt, aber keine so wirklich befriedigende antwort gefunden.
1. overhead
daran kanns alleine jedenfalls nicht liegen. der overhead wird bei der dateigröße ja mitgezählt (oder?). das heisst, wenn ich jetzt eine 100GB-Datei oder 100 Millionen 1kB-Dateien kopiere, müssen in beiden fällen 100GB gelesen und geschrieben werden, da der overhead ja jeweils bereits mitgezählt wurde. selbst wenn er nicht mitgezählt würde: das schreiben von vielen kleinen dateien geschieht um so viel langsamer, dass der overhead unverhältnismäßig groß sein müsste, um das zu kompensieren: ein overhead um mehr als das 30-fache liegt bei 1kB-Dateien sicher nicht vor, wenn man mal von einer kopiergeschwindigkeit von 5MB/s (kleine dateien) zu 150 MB/s (große dateien) ausgeht.
2. lesen fragmentierter Dateien
auch das erklärt die geringere geschwindigkeit mMn. nicht vollständig. Selbst wenn die Quelle stark fragmentiert wäre und beim Lesen daher extrem viele random-zugriffe nötig wären, so dürfte der lesevorgang der quelle (SSD) immer noch schneller als im niederigen einstelligen MB/s bereich vonstatten gehen. Außerdem kann auch eine große Datei in viele kleine kleine Stückchen zerstückelt vorliegen.
3. Daten werden beim schreiben fragmentiert
Hier gilt eigentlich das selbe: auch eine große datei kann in viele kleine stückchen zerpflückt werden. Da es sich in meinem fall aber um eine Leere SSD gehandelt hat, gibt es garkeinen grund, beim schreiben großartig rumzufragmentieren.
Vll. kanns mir wer erklären, vielen Dank!
warum dauert es um so viel länger, viele kleine dateien zu kopieren als eine große datei? insbesondere beim kopieren von dateien von einer SSD auf eine jungfräuliche SSD ist mir das neulich wieder aufgefallen.
ich habe das natürlich gegoogelt, aber keine so wirklich befriedigende antwort gefunden.
1. overhead
daran kanns alleine jedenfalls nicht liegen. der overhead wird bei der dateigröße ja mitgezählt (oder?). das heisst, wenn ich jetzt eine 100GB-Datei oder 100 Millionen 1kB-Dateien kopiere, müssen in beiden fällen 100GB gelesen und geschrieben werden, da der overhead ja jeweils bereits mitgezählt wurde. selbst wenn er nicht mitgezählt würde: das schreiben von vielen kleinen dateien geschieht um so viel langsamer, dass der overhead unverhältnismäßig groß sein müsste, um das zu kompensieren: ein overhead um mehr als das 30-fache liegt bei 1kB-Dateien sicher nicht vor, wenn man mal von einer kopiergeschwindigkeit von 5MB/s (kleine dateien) zu 150 MB/s (große dateien) ausgeht.
2. lesen fragmentierter Dateien
auch das erklärt die geringere geschwindigkeit mMn. nicht vollständig. Selbst wenn die Quelle stark fragmentiert wäre und beim Lesen daher extrem viele random-zugriffe nötig wären, so dürfte der lesevorgang der quelle (SSD) immer noch schneller als im niederigen einstelligen MB/s bereich vonstatten gehen. Außerdem kann auch eine große Datei in viele kleine kleine Stückchen zerstückelt vorliegen.
3. Daten werden beim schreiben fragmentiert
Hier gilt eigentlich das selbe: auch eine große datei kann in viele kleine stückchen zerpflückt werden. Da es sich in meinem fall aber um eine Leere SSD gehandelt hat, gibt es garkeinen grund, beim schreiben großartig rumzufragmentieren.
Vll. kanns mir wer erklären, vielen Dank!