解释网络服务器的 /proc/diskstats:写入次数多于读取次数?

解释网络服务器的 /proc/diskstats:写入次数多于读取次数?

感谢这个答案我能够看到我的 Apache 网络服务器的总读取+写入次数:

[root@barricade ~]# cat /proc/diskstats | grep  sda
   8       0 sda 653416 315344 72474412 17441745 4597621 15680121 156902978 282408636 0 80171663 299835582
   8       1 sda1 595 245 4696 528 3 0 18 0 0 527 527
   8       2 sda2 652661 315089 72468356 17440939 3932716 15680121 156902960 236353355 0 49417302 253779925

如果我正确解读了数字,磁盘已执行 653.416 次读取和.. 4.597.621 次写入?!?该 Web 服务器主要提供 HTML 页面(PHP+MySQL)服务,不可能产生比读取更多的写入操作吧?

我误解了什么?

编辑:iostat 似乎证实了这一点......但我仍然感到困惑......

[root@barricade ~]# iostat
Linux 2.6.32-431.20.3.el6.x86_64 (barricade.zane.it)    08/08/2014      _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
       3,45    0,00    0,82    2,58    0,00   93,15

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               5,29        72,99       158,06   72474540  156951762
dm-0             13,36         7,07       104,99    7018170  104254024
dm-1              0,35         1,84         0,96    1828536     956040
dm-2              7,03        64,07        52,11   63621098   51741680

答案1

/proc/diskstats 的内容和“iostat”本身的输出都显示了自计数器重置以来(可能是自机器启动以来)的累积统计数据。

如果您的 Web 服务器主要提供 HTML 和简单 SQL,则很可能大部分数据都来自内存缓存,因此很少会读取磁盘。另一方面,记录的所有内容(例如每个 HTTP 页面访问以及许多其他内容)都会生成写入磁盘的活动。

因此,如果所提供的内容很简单,那么系统自启动以来进行的写入活动比读取活动多,这并不是不合理的。

相关内容