如何找到我的硬盘的硬件块读取大小?

如何找到我的硬盘的硬件块读取大小?

我正在尝试使用 dd 找出硬盘中大型副本的最佳大小。我正在尝试找出使用它的最佳块大小,我假设这是该驱动器的硬件块大小。

答案1

lsblk命令非常适合这个:

lsblk -o NAME,PHY-SeC

结果:

NAME   PHY-SEC 
sda        512 
├─sda1     512 
├─sda2     512 
└─sda5     512 

答案2

Linux 在文件中公开了物理扇区大小/sys/block/sdX/queue/physical_block_size。不过,为了获得最佳性能,您可能应该使用不同的大小和测量方法进行一些测试。我可以不是 寻找 A 清除 回答因为使用精确的物理块大小将获得最佳结果(尽管我认为这不是一个糟糕的选择)。

答案3

$ sudo hdparm -I /dev/sda | grep -i physical
Physical Sector size:                  4096 bytes

http://wayback.archive.org/web/20150921015457/https://nxadm.wordpress.com/2010/04/30/4096-physical-block-size-drives/

答案4

每次磁盘传输都会生成一个中断,处理器必须处理该中断。典型的 50Mb/s 磁盘每秒将生成 100000 个中断,块大小为 512b 普通处理器将处理数万个中断,因此更大的 (2^x) 块大小会更方便(大多数系统中默认 FS 块大小为 4k,最高可达 64k ISA DMA 大小)会更实用...

相关内容