这些磁盘读取来自哪里?

时间:2014-07-31 11:57:19

标签: linux performance kernel disk iostat

我使用O_WRONLY | O_SYNC | O_DIRECT编写了一个使用单块写入磁盘的心跳应用程序。

我是否需要为此设备禁用缓冲区缓存?

在测试过程中没有读者。我可以按如下方式模拟它:

# dd of=/dev/sda1 bs=512 count=1 if=/dev/zero oflag=direct,dsync

每次“iostat 1”时,每次我写的东西都会从设备上读取。

如果我添加“skip = 1000”等,行为不会改变。
如果我使用/ dev / sda或/ dev / sda1:

,行为会发生一些变化

SDA:

Linux 2.6.32-431.5.1.el6.x86_64 (wiley)  07/31/2014     _x86_64_ (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.07    0.01    0.07    0.04    0.00   99.80

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda              86.00       672.00         1.00        672          1

SDA1:

sda              83.00       648.00         1.00        648          1

1 个答案:

答案 0 :(得分:0)

啊哈!

raw(8)如下所示:

https://superuser.com/questions/242928/disable-linux-read-and-write-file-cache-on-partition/464382#464382

写:

# dd of=/dev/raw/raw1 bs=512 count=1 if=/dev/zero oflag=direct,dsync

的iostat:

sda               2.00         0.00         1.00          0          1