atop DSK 示数的含义,帮你捋一捋

上次介绍了atop在定位服务器瓶颈、调查宕机事件上的作用,今天再来具体看看 DSK 示数的含义,

一个悲伤的故事

前天,公司服务器一周内第5次宕机!!!

苦苦找寻原因的老蔡,天天盯着各种监控程序百思不得其解,
很巧合地,这次宕机的时候,老蔡正巧在服务器上面用atop盯着监控,于是捕捉到了宕机的那一刻的异常,如下图所示。

DSK繁忙示例
点击可看大图

可以说,如果早知道atop里面DSK的具体含义,说不定前天就已经“破案”了。
可惜老蔡刚开始对这个示数也只有个大致的认知,只知道数字越大就说明读写越高,而具体readwrite表示的什么,以及单位是什么,却是不知。
还以为是为了紧凑,把明显的KB/s或者MB/s去掉了。

那么下面具体来讲解讲解这幅图里面的数值和含义吧

DSK示数解读

示数 含义 例子解读
vda 盘符 例子中是系统盘
busy 100% 平时是硬盘繁忙情况的百分比 磁盘io满了
read 27 每秒读取请求的数量 每秒27次
write 9 每秒写的请求数量 每秒9次
KiB/r 4 每次读请求所读取的文件大小的平均值 4k随机读为主
KiB/w 29 每次写请求写的文件大小平均值 每次平均写29kB
Mbr/s 0.0 每秒读盘的吞吐量 四舍五入为0了
Mbw/s 0.0 每秒写入的吞吐量 同上
avq 1.01 平均磁盘读写队列长度 1.01个,说明读写不重
avio 278ms 平均每个读写请求需要的时间 硬盘读写延迟278ms,对于单次io等待,可以说是很高了

而老蔡刚开始的时候以为是自己的程序磁盘占用太多,把读写单位当做MB/s来理解。
现在明白真正该怀疑是什么问题后,才恍然大悟——之前的解读是错的。
那么,机智的你,猜到是什么原因导致的宕机了吗?欢迎留言哦。