落烨无痕

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

在prometheus利用公式:100 - (avg by (instance) (irate(node_cpu{instance="xxx", mode="idle"}[5m])) * 100) 计算cpu使用率,如果cpu低负载,且多核(我的是32核)的情况下,会出现负数。

 

 

原因:cpu的使用数据都是测算值来的(CPU处于空闲状态时间比例。一般而言,idel + user + nice 约等于100%)。当cpu处于多核、低负载的情况下,值的差异会被放大,从而导致出现负数的情况。

解决方法:

换成公式:avg by (ip)(irate(node_cpu_seconds_total{mode=~"sytem|user|iowait|irq|softirq|nice|steal|guest"}[5m])) * 100

 

posted on 2019-07-05 17:02  落烨无痕  阅读(4313)  评论(0编辑  收藏  举报