主机CPU

主机的CPU有很多比如说有N个,Tn时刻主机CPU空闲率的计算方法应该为

(Tn时刻所有CPU的空闲时间和 - Tn-1所有CPU的空闲时间和) / (时间间隔 * N)

分解开来,其实就是

[(Tn时刻CPU{0}的空闲时间 - Tn-1所有CPU{0}的空闲时间) / 时间间隔 + ... + (Tn时刻所有CPU{N-1}的空闲时间 - Tn-1所有CPU{N-1}的空闲时间) / 时间间隔] / N

那么就是

[irate(node_cpu_seconds_total{cpu="0",mode="idle"}[1m]) + ... + irate(node_cpu_seconds_total{cpu="N-1",mode="idle"}[1m])] / N

avg(irate(node_cpu_seconds_total{mode="idle"}[1m]))

上面的表达式只适于用只有一台主机时,如果有多台主机时,某台主机的CPU空闲率为

avg(irate(node_cpu_seconds_total{instance="ip:port",mode="idle"}[1m]))

如下是分别统计出来的两台主机的cpu空闲率的截图

可以用下面的表达式来一次性统计所有主机的cpu空闲率

avg(irate(node_cpu_seconds_total{mode="idle"}[1m])) by(instance)

如下是统计出来的两台主机的cpu空闲率截图,可以看到有两条曲线,分别表示两台个instance

那么一次性统计每台主机的cpu使用率的表达式为

1 - avg(irate(node_cpu_seconds_total{mode="idle"}[1m])) by(instance)

Last updated