磁盘 read/write 在 linux 中的性能

Disk read/write perfomance in linux

我想检查 read/write 我的磁盘的性能。我正在执行以下命令写入文件

time dd if=/dev/zero of=/home/test.txt bs=2k count=32k;

大约为 400MB/s

为了检查读取性能,我在 commands.with 下执行且没有 'of' 参数。这些结果之间存在巨大差异

time dd if=/home/test.txt of=/dev/zero bs=2k (gives about 2.8GB/s)

time dd if=/home/test.txt bs=2k  (9MB/s)

我读到 "of=/dev/zero" 用于在创建文件时从某个临时文件中读取数据。

但是为什么在检查读取性能时需要它以及为什么有和没有 "of=/dev/zero"

时速度存在巨大差异

您在读取操作中使用 HDD 和文件系统的缓存。试试oflag=直接标志。

/dev/zero是一个特殊的文件。它的内容源于设备驱动程序。 /dev/zero 上的所有写操作都保证成功。更多关于 here and here

未指定 dd 打印到标准输出。因此,终端接收到的数据必须进行格式化和打印。您使用的终端很可能会成为驱动器性能的瓶颈。

also if likely 代表输入文件,likewise of 代表输出文件。

编辑:

写入 /dev/zero 可能会产生意想不到的结果。我不会说这是衡量读取性能的准确方法。