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 cpKopieren 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 cpVorgang nicht sehr effizient ist, da (1) timemir mitteilt, dass die Systemzeit für eine solche Kopie nur ~ 45 Sekunden beträgt; und weil (2), wenn ich topwährend des Kopierens untersuche, % CPU ziemlich niedrig ist (nach Prüfung durchschnittlich etwa 0-10% ).
Das cpKopieren 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 cpKopieren 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.
ddund rsynczu 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/sda1nach /dev/sdb1ist schneller als das Kopieren von einem Speicherort an /dev/sda1einen anderen Speicherort auf /dev/sda1oder auf eine andere Partition, /dev/sdada 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).