磁盘速率统计

因为工作中需要监控linux系统磁盘io速率,目前是基于prometheus来做统一告警的,所以客户端也是使用的prometheus的procfs.github.com/prometheus/procfs

对于磁盘就是块设备,procfs里面已经有了相应的接口来访问快设备的速率。github.com/prometheus/procfs/blockdevice。

所以可以很快就写出如下计算当前读写总量的代码:


可是计算出来的结果和iostat的总是不一样。计算出来的结果总是大于iostat的结果。通过linux命令看了下块设备可以发现:

磁盘下面的sda的流量等于∑sda(x)。github.com/prometheus/procfs/blockdevice是读取了/proc/diskstats下面的所有设备的信息。

如果直接使用上面的代码求和,那么就会出现重复计算的问题。所以我们这里只需要求和miniorNumber是0的就可以。

所以代码修改成如下


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容