多亏了这个答案,我才能看到我的 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 次写入?!?这个网络服务器基本上服务于 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
/proc/diskstats 的内容和它自己的 'iostat' 的输出都显示了自计数器重置以来的累积统计信息(可能是自机器启动以来)。
如果您的网络服务器主要服务于 HTML 和简单的 SQL,那么它很可能大部分来自内存缓存,因此很少需要访问磁盘进行读取。另一方面,所有被记录的事情(例如每个 HTTP 页面访问,以及许多其他事情)都会向磁盘生成写入活动。
因此,如果提供的内容很简单,那么自启动以来系统执行的写入活动多于读取活动并不是不合理的。