我正在尝试使用dd从硬盘中找出大拷贝的最佳大小。我试图找出使用它的最佳块大小,我认为那是该驱动器的硬件块大小。
我正在尝试使用dd从硬盘中找出大拷贝的最佳大小。我试图找出使用它的最佳块大小,我认为那是该驱动器的硬件块大小。
Answers:
该lsblk命令这是伟大的:
lsblk -o NAME,PHY-SeC
结果:
NAME PHY-SEC
sda 512
├─sda1 512
├─sda2 512
└─sda5 512
Linux在文件中公开物理扇区的大小/sys/block/sdX/queue/physical_block_size
。虽然,为了获得最佳性能,您可能应该使用不同的大小和度量进行一些测试。我能不能 找到 一个 明确的 答案中,使用完全相同的物理块大小将得到最佳的结果(虽然我认为它不可能是一个不错的选择)。
hdparm
都可能对您撒谎。
$ sudo hdparm -I /dev/sda | grep -i physical
Physical Sector size: 4096 bytes
hdparm -I /dev/sda | grep Sector
更好,因为它将同时显示物理和逻辑大小,以便于比较。
我的目的不是要得到一个完整的答案,但我希望它也能有所帮助。
以下是http://mark.koli.ch/2009/05/howto-whole-disk-backups-with-dd-gzip-and-p7zip.html中的内容
为了更快地备份,它可以帮助确定要备份的磁盘设备的最佳块大小。假设您要备份/ dev / sda,以下是使用fdisk命令确定最佳块大小的方法:
rescuecd#/> /sbin/fdisk -l /dev/sda | grep Units
Units = cylinders of 16065 * 512 = 8225280 bytes
注意fdisk输出显示“ 16065 * 512的气缸”。这意味着磁盘上每个块有512个字节。通过将块大小增加2到4的倍数,可以显着提高备份速度。在这种情况下,最佳块大小可能是1k(512 * 2)或2k(512 * 4)。顺便说一句,贪婪并使用5k的块大小(512 * 10)或过多的块将无济于事;最终,系统将成为设备本身的瓶颈,您将无法从备份过程中挤出任何其他性能。(添加了重点)
我怀疑给定配置的最佳块大小与最佳块大小之间的性能差异可忽略不计,除非数据集巨大。确实,FixUnix的用户(2007年后)声称其最佳时间仅比次优时间快了5%。也许您可以通过使用“群集”大小或文件系统块大小的倍数来提高效率。
当然,如果您移到最佳块大小的任一边太远,都会遇到麻烦。
最重要的是,在绝对最佳的块大小下,您可能只会获得大约5%的性能(即每小时3分钟),因此请考虑是否值得您花费时间和精力进行进一步的研究。只要您远离极端价值观,就不应遭受痛苦。
echo "p" | /sbin/fdisk /dev/sda...
代替的某些原因/sbin/fdisk -l /dev/sda...
?第二个会更清洁,不会尝试进行任何更改。
/sbin/fdisk -l /dev/sda | grep Units
。最近两年可能已更改。无论如何,我已经更新了您的答案。
每次磁盘传输都会产生一个处理器必须处理的中断。典型的50Mb / s磁盘将要以512b块大小每秒生成100000个磁盘,普通处理器将处理成千上万个,因此更大(2 ^ x)的块大小会更方便(大多数情况下4k作为默认FS块大小)高达64k ISA DMA大小的系统)将更加实用...