/proc/diskstats 上的统计信息始终显示写入次数多于读取次数

/proc/diskstats 上的统计信息始终显示写入次数多于读取次数

我从 /proc/diskstats 中获取了以下统计数据:

9       0 md0 106989 0 _2923830_ 0 117988 0 _3448953_ 0 0 0 0
8       0 sda 33840 22299 _1143351_ 871132 87336 194804 _2003961_ 2201868 0 949992 3075508
8      32 sdc 34326 22412 _1147488_ 530856 85645 193714 _1981641_ 1147288 0 777236 1679364
8      16 sdb 34090 22044 _1145348_ 516996 87908 194091 _2002553_ 1160088 0 777432 1678168
253       0 dm-0 61416 0 _1474562_ 1089052 8671 0 _71664_ 2314824 0 152296 3403896
253       1 dm-1 16733 0 _321034_ 177216 39437 0 _1292056_ 2234284 0 366448 2411516
253       2 dm-2 27407 0 _1103562_ 301084 57436 0 _1918752_ 3595356 0 495024 3896452
253       3 dm-3 1223 0 _22904_ 16800 5373 0 _166481_ 537476 0 101444 554276

md0 是带有 sda3、sdb3 和 sdc3 的 RAID5 设备。dm-0、dm-1、dm-2 和 dm-3 分别是 /、/home、/var 和 squid-cache。内核 3.17-1-amd64,Debian sid。

除了 dm-0,为什么写入的扇区总是比读取的多?(均突出显示;8 小时正常运行时间)

另一台机器(内核 3.13.0-42-generic,LinuxMint 17.1):

8       0 sda 348838 182021 _14285981_ 3994572 2220600 1291157 _179318400_ 150821584 0 6850872 154817944

另一个(内核 3.11-1-amd64,Debian wheezy:

8      16 sdb 5759214 809293 _345212787_ 20363500 6136587 7332680 528239577 _419346280_ 0 34343932 439745468

最后一个(RAID1,内核3.2.0-4-amd64,Debian wheezy):

9       0 md0 18465 0 _765758_ 0 1471467 0 _17892758_ 0 0 0 0
8       0 sda 127945 54619 _15162313_ 1237028 1342374 3413939 _41328777_ 35251952 0 9247532 36501996
8      16 sdb 123240 48371 _14849663_ 1225468 1342456 3413948 _41328777_ 35337212 0 9281520 36573484

写入的次数确实比读取的次数多,还是我遗漏了什么?

答案1

这是一个很好的复习的地方:

http://www.linuxquestions.org/questions/suse-novell-60/interpreting-proc-diskstats-360350/

对于 md0 RAID1 镜像,通常总是会有更多的写入,因为它需要两次写入所有数据并读取一次。无论哪个设备首先读取数据 :)

这就是在设备发生故障时使用镜像来传播数据的概念。

干杯!

答案2

只是认为您的磁盘读取缓存(在内存中)可能很好地将经常读取的文件保存在内存中,只留下磁盘写入来实际使用磁盘。

如果您有大量可用 RAM,并且不会定期从硬盘读取大量新数据,则 RAM 缓存可能会取代大量潜在的磁盘读取。

如果你不使用“ ,前面提到的挂载选项noatime也可以避免额外的写入”mutt 或其他需要知道文件自上次修改以来是否已被读取的应用程序。

相关内容