Ich bin ein Doktorand, und die Gruppe, in der ich arbeite, unterhält einen Linux-Cluster. Jeder Knoten des Clusters verfügt über eine eigene lokale Festplatte, diese lokalen Festplatten sind jedoch relativ klein und nicht mit einer automatischen Sicherung ausgestattet. Die Gruppe besitzt also einen Dateiserver mit vielen TB Speicherplatz. Ich bin ein relativer Linux-Neuling, daher bin ich mir nicht sicher, was die Spezifikationen des Dateiservers in Bezug auf Geschwindigkeit, Netzwerkfähigkeit usw. sind. Ich weiß aus Erfahrung, dass die lokalen Festplatten in Bezug auf E / A erheblich schneller sind als der Dateiserver . Ungefähr ein Dutzend Leute benutzen den Fileserver.
Das cp
Kopieren einer ~ 20-GB-Datei vom Dateiserver auf eine der lokalen Festplatten dauert durchschnittlich (laut time
) ca. 11,5 Minuten in Echtzeit . Ich weiß, dass dieser cp
Vorgang nicht sehr effizient ist, da (1) time
mir mitteilt, dass die Systemzeit für eine solche Kopie nur ~ 45 Sekunden beträgt; und weil (2), wenn ich top
während des Kopierens untersuche, % CPU ziemlich niedrig ist (nach Prüfung durchschnittlich etwa 0-10% ).
Das cp
Kopieren derselben ~ 20-GB-Datei von einem Ordner auf der lokalen Festplatte in einen anderen Ordner auf derselben lokalen Festplatte dauert weniger Zeit - ungefähr 9 Minuten in Echtzeit (je nach Systemzeit ~ 51 Sekunden time
). Anscheinend ist der Dateiserver also erwartungsgemäß etwas langsamer als die lokale Festplatte, aber möglicherweise nicht wesentlich langsamer. Ich bin überrascht, dass das Kopieren von lokal auf dasselbe lokal nicht schneller als 9 Minuten ist.
Ich muss ~ 200 große Dateien - jeweils ~ 20 GB - vom Dateiserver auf eine der lokalen Festplatten kopieren. Meine Frage lautet also: Gibt es eine schnellere Alternative zum cp
Kopieren großer Dateien unter Linux? (Oder gibt es irgendwelche Flags cp
, die ich verwenden könnte, um das Kopieren zu beschleunigen?) Selbst wenn ich diese Kopierzeit auf irgendeine Weise um eine Minute verkürzen könnte, würde das immens helfen.
Ich bin sicher, dass ich neue, schnellere Hardware-Festplatten kaufe, aber ich habe keinen Zugriff auf solche Ressourcen. Ich bin auch kein Systemadministrator - ich bin nur ein (Anfänger-) Benutzer - also habe ich keinen Zugriff auf detailliertere Informationen über die Last, die sich auf den Datenträgern befindet. Ich weiß, dass während ungefähr ein Dutzend Leute den Dateiserver täglich benutzen, ich die einzige Person bin, die diesen bestimmten Knoten / lokalen Datenträger benutzt.
dd
und rsync
zu vergleichen , die man schneller in Ihrer Umgebung funktioniert
dd
, aber ich habe es nur versucht rsync
. Die Echtzeit betrug ungefähr 11,5 Minuten und die Systemzeit ungefähr 1,5 Minuten time
.
/dev/sda1
nach /dev/sdb1
ist schneller als das Kopieren von einem Speicherort an /dev/sda1
einen anderen Speicherort auf /dev/sda1
oder auf eine andere Partition, /dev/sda
da die Festplatte keine zusätzlichen Suchvorgänge zwischen Lese- und Schreibvorgängen ausführen muss (unter der Annahme herkömmlicher Festplatten mit sich drehenden Datenträgern und sich bewegenden Köpfen; SSD ist offensichtlich anders).