現在dd、入力(if)としてスパースファイルを使用し、出力(of)としてファイルを使用して起動すると問題が発生しますconv=sparse。ddCPUの1つのコア(Intel(R) Core(TM) i7-3632QM CPU @ 2.20GHz4コア+ 4 Intelハイパースレッド)のみ(1コアの100%)を使用しているようなので、並列化が可能かどうか疑問に思っていましたdd。行ったことがある
- 調べてみる
info ddとman dd、corutils 8.23のバージョンに組み込み関数があるようです。 - (それが私のニーズに合っているかどうかを理解せずに)パッケージ
sgp_ddからチェックしsg3-utilsますが、スパースファイルを処理することができないようです dcfldd並列化機能がないようです
私の知る限り
- 複数のスレッドでのプログラムパーツの内部処理を備えた拡張バージョン/フォーク(I / Oパフォーマンスを低下させるコンテキスト変更を回避する)が優先されます
parallelローカルで実行されているGNUのソリューションが優先されます- カスタム(テストされていない可能性がある)コードスニペット
I / O集中型操作のボトルネックとなるCPUを回避する方法 Linux 3.13を搭載したUbuntu 14.04でコマンドを実行し、スパースファイルをサポートする任意のファイルシステムでスパースファイルのディスクイメージを処理したいと思います(少なくとも、ソリューションは1つの特定のファイルシステムにバインドされるべきではありません)。
背景:私は、zfsに11 TBのスパースファイル(約2 TBのデータを含む)のコピーを作成しようとしています(zfsonlinux 0.6.4不安定バージョン、バグが多く、CPUボトルネックの原因(最終的には低速のホール検索))。(非常に一般的な方法で)ddを並列化する方法の問題については、何も変更されません。
この操作は極端な場合を除いてI / Oバウンドであるため、これから何が得られるかわかりません。私の意見では、最適なオプションは、スパース対応のプログラム、たとえばxfs_copyなどです。そのmanページには言及:「しかし、ファイルはXFSファイルシステム上に作成された場合、ファイルが消費するには、おおよそ実際にファイルシステムとXFSログでソースファイルシステムで使用されるスペースの量xfs_copyが空きブロックの上に追求するため、省スペースです。それらをコピーする代わりに、XFSファイルシステムはスパースファイルを効率的にサポートします。
—
クリスティアンCiupitu 2014年
@mikeservコメントが理解できません...
—
Karl Richter、
@CristianCiupitu私の場合、CPUがボトルネックです-わからないので、理由を聞かないでください。あなたの答えは、ソリューションが複数のファイルシステム(スパースファイルを処理できる)をサポートする必要があることを私に認識させました(編集済み)
—
Karl Richter
CPUとファイルシステムは何ですか?ファイルのサイズはどれくらいですか(長さとブロック)?
—
クリスティアンCiupitu 2014年
ddブロックサイズが小さいため、デフォルトでCPUを占有します。のように大きくしbs=1Mます。