Linux dd命令的最大块大小

Linux dd命令的最大块大小,linux,hard-drive,dd,Linux,Hard Drive,Dd,我想在SanDisk 32GB micro SD上运行dd,但我不确定如何确定块大小 通常我使用的是bs=1M,但我可以再高一点吗?你可以再高一点,但可能不会有什么区别。如果你走得太高,事情实际上可能会慢下来 不同的SSD设备具有不同的性能配置文件。对于这个世界上存在的每个SSD设备,没有一个通用的、终极的答案是正确的 获得正确答案的唯一方法是试验各种块大小,并对性能进行基准测试。可以更高,但可能不会有任何区别。如果你走得太高,事情实际上可能会慢下来 不同的SSD设备具有不同的性能配置文件。对于

我想在SanDisk 32GB micro SD上运行
dd
,但我不确定如何确定块大小


通常我使用的是
bs=1M
,但我可以再高一点吗?

你可以再高一点,但可能不会有什么区别。如果你走得太高,事情实际上可能会慢下来

不同的SSD设备具有不同的性能配置文件。对于这个世界上存在的每个SSD设备,没有一个通用的、终极的答案是正确的


获得正确答案的唯一方法是试验各种块大小,并对性能进行基准测试。

可以更高,但可能不会有任何区别。如果你走得太高,事情实际上可能会慢下来

不同的SSD设备具有不同的性能配置文件。对于这个世界上存在的每个SSD设备,没有一个通用的、终极的答案是正确的

要得到正确答案,唯一的方法就是尝试各种块大小,并对性能进行基准测试。

试试看

#!/bin/bash
bs=( 32k 64k 128k 256k 512k 1m 2m 4m )
ct=( 32768 16384 8192 4096 2048 1024 512 256 )
for (( x=0;x<${#bs[@]};x++ )); do
   echo Testing bs=${bs[x]},count=${ct[x]}
   dd if=/dev/zero bs=${bs[x]} count=${ct[x]} of=junk
done
试试看

#!/bin/bash
bs=( 32k 64k 128k 256k 512k 1m 2m 4m )
ct=( 32768 16384 8192 4096 2048 1024 512 256 )
for (( x=0;x<${#bs[@]};x++ )); do
   echo Testing bs=${bs[x]},count=${ct[x]}
   dd if=/dev/zero bs=${bs[x]} count=${ct[x]} of=junk
done

字节速度:)?bs的意思是。我通常使用4M,它工作正常,差异将非常小,所以我不会太担心它。字节速度:)?bs的意思是。我通常使用4M,它工作正常,差异将非常小,所以我不会太担心。我必须将blocksize中的小写字母“m”改为大写字母,我还将k的大写字母改为大写字母,以确保块大小为基数2。至于在SSD和其他闪存介质上的测试,在for循环中添加
rm junk
作为最后一行将影响速度,因为它会将磁盘写入更改为普通写入,而不是可能的读修改写入。在我的Samsung 850 Evo上,这些更改在表观吞吐量方面产生了很大的差异,不同运行之间的结果更加一致。我必须将blocksize中的小写字母“m”更改为大写字母,我还将大写字母“k”改为大写字母,以确保块大小以2为基数。至于在SSD和其他闪存介质上的测试,在for循环中添加
rm junk
作为最后一行将影响速度,因为它会将磁盘写入更改为普通写入,而不是可能的读修改写入。在我的三星850 Evo上,这些变化在明显的吞吐量上产生了很大的差异,不同运行之间的结果更加一致。