dd 在读写时变慢

Kar*_*rlo 8 linux dd sdhc ubuntu

user@user-laptop:~$ sudo dd if=sd_backup of=/dev/sdd bs=4M conv=noerror,sync

205520896 bytes (206 MB) copied, 28.564 s, 7.2 MB/s
247463936 bytes (247 MB) copied, 57.1285 s, 4.3 MB/s
260046848 bytes (260 MB) copied, 73.2388 s, 3.6 MB/s
289406976 bytes (289 MB) copied, 104.121 s, 2.8 MB/s
301989888 bytes (302 MB) copied, 119.627 s, 2.5 MB/s
318767104 bytes (319 MB) copied, 134.332 s, 2.4 MB/s
331350016 bytes (331 MB) copied, 149.977 s, 2.2 MB/s
343932928 bytes (344 MB) copied, 164.332 s, 2.1 MB/s
360710144 bytes (361 MB) copied, 180.361 s, 2.0 MB/s
432013312 bytes (432 MB) copied, 258.438 s, 1.7 MB/s
444596224 bytes (445 MB) copied, 273.024 s, 1.6 MB/s
616562688 bytes (617 MB) copied, 452.296 s, 1.4 MB/s
641728512 bytes (642 MB) copied, 482.516 s, 1.3 MB/s
Run Code Online (Sandbox Code Playgroud)

复制这个 8GB 文件后,dd 怎么变慢了?我该怎么办?

Oll*_*lli 8

起初,它显示错误的数字,因为 Linux 会缓存您的写入。磁盘缓存也可以加快读取速度。

一段时间后,缓存被消耗(读取和写入)并且速度下降。dd计算整体速度,所以看起来速度在不断下降,而实际上它开始很快,然后变慢,但平均下降缓慢。

如果在完成前一个dd(或另一个磁盘密集型操作)后等待一段时间,缓存将被写出并且它应该再次快速(在开始时)。