我怎样才能尽可能快地运行dd?


3

我正在学习bash,并与周围的许多人来说,所有的困惑是什么许多不同的方式有从/一(零写入驱动器或传输数据shredVS ddVS pvVS catVS tee等),我已经不堪重负。

就目前而言,我不情愿地选择了dd它,因为它似乎是两种用途的最佳命令行选项。鉴于此,我想确保我尽可能高效地使用它。

据我所知,默认情况下dd,块大小为512字节,并且增加了这个值,例如:

dd if=/dev/zero of=/dev/sdX bs=3M status=progress

...会使它写出更大的块并且这样做的次数更少,因此可以更快地运行。

但是如果简单地设置更大的块大小会使命令运行得更快,那么阻止我使用bs=3G什么呢?这样做有什么缺点,如果有的话?Linux超级用户推荐使用的最佳块大小是多少?


3
只是有一个更大的块大小不是答案,最有效的块大小可以通过硬件,RAM,处理器,其他应用程序等...有一篇文章和脚本用于测试/找到正确的组合,我会看我能否找到链接。
acejavelin

4
啊......这里......不是真正的答案,但它可能会让你走上正确的轨道... blog.tdg5.com/tuning-dd-block-size
acejavelin

@Vlastimil:如果你使用它真的没什么区别ddpv或者cp:它们运行得和硬件允许的一样快。并且请不要像“dd过时的磁盘归零”那样传播废话:dd是一种特殊用途的特殊工具,虽然它已经陈旧,但“过时”与此无关。您可以使用在您的方案中最适合的任何工具。
dirkt

“围绕着许多不同的方式存在所有混淆......” - 你可能会发现这个问题很有趣:用于编写图像文件的dd和cat有什么区别?
卡米尔·麦克奥霍斯基

Answers:


-1

名为hdparm的工具可能是你可以研究的东西。这是一个非常低级的工具,有一些潜在的危险选择。这是该工具的手册页。它功能强大,所以使用它需要您自担风险。此工具可能会最快地执行零写操作。


您是否有任何消息来源或推理来证实这个声明hdparm是一个比我在问题中提到的更快的工具?
哈希姆

检查我为该工具的文档添加的链接。我所知道的唯一一种测试零写入速度和时间的方法是在同一测试硬盘上使用不同的工具,并使用time命令查看性能时间。我的答案中的蓝色字是指向该工具信息的链接。据我所知,它是用汇编程序编写的,这将是最快的执行。下一步将是C / C ++。你只需要测试不同的工具。
Yokai
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.