質問: gzipを介した 'dd'のパイプ処理が直接コピーよりもはるかに速いのはなぜですか? 私のネットワーク内のコンピュータから同じネットワーク内の別のコンピュータへのパスを100 mbit/sの回線でバックアップしたいと思いました。このために私はやったdd if=/local/path of=/remote/path/in/local/network/backup.img これは、私には50から100kb/s程度の非常に遅いネットワーク転送速度を与えました。そこで私はそれを止めて、転送する量が少なくなるようにそれをもっと小さくするためにその場でそれをgzipすることを試みることにしました。だから私はやったdd if=/local/path | gzip > /remote/path/in/local/network/backup.img.gz しかし今、私は1メガバイト/秒のネットワーク転送速度のようなものを得るので、10から20倍速い。これに気付いた後、私はいくつかのパスとファイルでこれをテストしましたが、それは常に同じでした。パイプラインのddからgzipを使用すると、ストリームのバイト長が大幅に短縮されるのではなく、転送レートが大幅に向上するのはなぜですか?圧縮時のcpu消費量の増加により、転送速度のわずかな低下でさえも代わりに期待されていましたが、今私は二重のプラスを得ます。私は幸せではないというわけではありませんが、私はただ疑問に思っています。 ;)
回答: 少し遅くなりますが、追加してもいいですか...インタビューで私はかつて尋ねられたビットごとのデータをクローンするための最も早い方法と粗いもののどちらがddかdc3ddの使用で答える( 国防総省は に資金を供給した。インタビュアーは、ddへのddのパイプがより効率的であることを確認しました。これは単に同時読み取り/書き込みまたはプログラマ用語でstdin/stdoutを許可します。dc3dd verb=on if=/media/backup.img | dc3dd of=/dev/sdb