【问题标题】:Disk read/write perfomance in linuxlinux中的磁盘读/写性能
【发布时间】:2015-06-19 11:37:30
【问题描述】:

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

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

大约 400MB/s

为了检查我在命令下面执行的读取性能。有和没有'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”时速度会存在巨大差异

【问题讨论】:

    标签: linux time dd


    【解决方案1】:

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

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

    如果可能代表输入文件,同样代表输出文件。

    编辑:

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

    【讨论】:

    • 知道了...如果未提及“of”,则输出将转到文件的标准输出。但是,如果未指定“of”,为什么我在终端中看不到任何输出
    • 在您的情况下, /home/test.txt 填充了空字节(来自 /dev/zero)。终端接收它们,但这些控制字符是不可打印的,因此它们不会显示出来。更多here
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2014-04-26
      • 2018-05-31
      • 1970-01-01
      • 1970-01-01
      • 2014-04-17
      • 1970-01-01
      • 2019-01-06
      • 2019-01-29
      • 2012-12-28
      相关资源
      最近更新 更多