[Linux]time+dd测试硬盘手机SD卡读写速度

it2025-08-28  6

1.语法: time dd if=path/input_file of=/path/output_file bs=block_size count=number_of_blocks

time有计时作用,dd用于复制,从if读出,写到of;

if=                输入文件名,缺省为标准输入 of=                输出文件名,缺省为标准输出 ibs=                一次读入字节数(即一个块大小) obs=                一次写字节数(即一个块大小) bs=                同时设置读写块的大小 ,可代替 ibs 和 obs 。 cbs=                一次转换字节,即转换缓冲区大小。 skip=              从输入文件开头跳过 blocks 个块后再开始复制。 seek=           从输出文件开头跳过 blocks 个块后再开始复制。(通常只有当输出文件是磁盘或磁带时才有效) count=             仅拷贝 blocks 个块,块大小等于 ibs 指定的字节数。 conv=conversion[,conversion...] 用指定的参数转换文件。 iflag= 指定读的方式,参见“FLAGS参数说明” oflag= 指定写的方式,参见“FLAGS参数说明”

2.两个特殊设备:

(1) if=/dev/zero(产生字符)不产生IO,因此可以用来测试纯写速度;

(2) of=/dev/null(回收站、无底洞)不产生IO,可以用来测试纯读速度;

 

3.速度

3.1 写速度

time dd if=/dev/zero of=test.txt bs=8k count=300000

=>

300000+0 records in 300000+0 records out 2457600000 bytes (2.5 GB, 2.3 GiB) copied, 25.5826 s, 96.1 MB/s

real    0m25.758s user    0m0.264s sys     0m2.320s

所以写速度为:8*300000/1024/25.758=90.991M/s

3.2 读速度

sudo time dd if=/dev/sda1 of=/dev/null bs=8k => 33280+0 records in 33280+0 records out 272629760 bytes (273 MB, 260 MiB) copied, 1.78716 s, 153 MB/s

所以sda1上的读取速度为:8*33280/1024/1.78716 =145.482M/s

 

 

 

最新回复(0)