感谢这个答案我能够看到我的 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 页面访问以及许多其他内容)都会生成写入磁盘的活动。
因此,如果所提供的内容很简单,那么系统自启动以来进行的写入活动比读取活动多,这并不是不合理的。