Ich habe derzeit Probleme beim dd
Aufrufen mit einer Datei mit geringer Dichte als Eingabe ( if
) und einer Datei als Ausgabe ( of
) mit conv=sparse
. dd
Anscheinend wird nur ein Kern der CPU ( Intel(R) Core(TM) i7-3632QM CPU @ 2.20GHz
4 Kerne + 4 Intel Hyperthreads) verwendet (100% von 1 Kern), daher habe ich mich gefragt, ob eine Parallelisierung möglich ist dd
. Ich war
- Ein Blick in
info dd
undman dd
und es scheint eine eingebaute Funktion in der Version von Corutils 8.23 zu geben - Überprüfung
sgp_dd
aus demsg3-utils
Paket (ohne zu verstehen, ob es meinen Anforderungen entspricht), aber es scheint nicht in der Lage zu sein, spärliche Dateien zu verarbeiten dcfldd
scheint keine Parallelisierungsfähigkeiten zu haben
so viel ich weiss
- Eine erweiterte Version / Verzweigung mit interner Behandlung von Programmteilen in mehreren Threads (vermeiden Sie Kontextänderungen, die die E / A-Leistung beeinträchtigen) wird bevorzugt
- Eine Lösung mit
parallel
lokal ausgeführtem GNU wird gegenüber einer Lösung bevorzugt - ein benutzerdefiniertes (möglicherweise nicht getestetes) Code-Sniplet
Wie kann vermieden werden, dass die CPU der Engpass eines E / A-intensiven Vorgangs ist? Ich möchte den Befehl unter Ubuntu 14.04 unter Linux 3.13 ausführen und damit spärliche Datei-Disk-Images auf jedem Dateisystem verarbeiten, das spärliche Dateien unterstützt (zumindest sollte die Lösung nicht an ein bestimmtes Dateisystem gebunden sein).
Hintergrund: Ich versuche, eine Kopie einer 11-TB-Sparse-Datei (mit ca. 2 TB Daten) auf einem zfs zu erstellen (zfsonlinux 0.6.4 instabile Version, möglicherweise fehlerhaft und die Ursache für den CPU-Engpass (eventuell langsame Lochsuche)). Das sollte nichts an der Frage ändern, wie man dd parallelisiert (auf sehr generische Weise).
dd
Die CPU wird aufgrund der geringen Blockgröße standardmäßig belastet. mach es größer, wie bs=1M
.