「dd」の「bs」オプションは本当に速度を改善しますか?
時々、「dd」の速度を上げるには、適切な「ブロックサイズ」を慎重に選択する必要があると言われています。 ここでも、ServerFaultの上、他の誰かが書いた「という... ...最適なブロックサイズは、ハードウェアに依存している」(イアン)または「...完璧なサイズは、システム・バス、ハードドライブコントローラ、特定のドライブに依存しますそれ自体、およびそれらのそれぞれのドライバー... " (chris-s) 私の気持ちが少し違っていたので(ところで:bsパラメーターを深く調整するのに必要な時間は、時間節約の観点から、受け取ったゲインよりもはるかに長く、デフォルトは合理的だと思っていました)、今日私はちょうど行きましたいくつかの迅速で汚れたベンチマークを通じて。 外部の影響を減らすために、私は読むことにしました: 外部MMCカードから 内部パーティションから そして: 関連するファイルシステムがアンマウントされている 「書き込み速度」に関連する問題を回避するために、出力を/ dev / nullに送信します。 少なくともHDDに関係する場合、HDDキャッシングのいくつかの基本的な問題を回避します。 次の表では、「bs」の値が異なる1GBのデータを読み取った結果を報告しました(このメッセージの最後に生の数値があります)。 基本的には次のようになりました: MMC:bs = 4(yes!4バイト)で、スループットが12MB / sに達しました。bs = 5以上から得た最大14.2 / 14.3までのそれほど遠くない値。 HDD:bs = 10の場合、30 MB / sに達しました。デフォルトのbs = 512で得られた95.3 MBよりも確かに低いですが、...重要です。 また、CPUのsys-timeはbsの値に反比例することは非常に明らかでした(しかし、bsが低いほど、ddによって生成されるsys-callの数が多くなるので、これは妥当と思われます)。 上記のすべてを言った今、質問:誰かがそのようなスループットに関与する主要なコンポーネント/システムとは何か(カーネルハッカー?)を説明できますか、そしてデフォルトよりも高いbsを指定する努力が本当に価値があるかどうか? MMCケース-生の数字 bs = 1M root@iMac-Chiara:/tmp# time dd if=/dev/sdc of=/dev/null bs=1M count=1000 1000+0 …