石墨图CPU使用率

时间:2013-01-22 01:49:59

标签: cpu-usage graphite

这有点棘手。我试图在某个时间点绘制CPU使用百分比。为此,我从/proc/stat获取样本 - 这些是绝对样本,它们看起来像这样:

app01.cpu.total.user    45997117    1358816118
app01.cpu.total.nice    165511          1358816118
app01.cpu.total.system  36679893    1358816118
app01.cpu.total.idle    3519926642  1358816118
app01.cpu.total.iowait  3854916         1358816118
app01.cpu.total.irq 2553            1358816118
app01.cpu.total.softirq 189828          1358816118
app01.cpu.total.steal   4497297         1358816118
app01.cpu.total.guest   0           1358816118

我用来显示这些的功能是:

scale(divideSeries(stats.app01.cpu.total.user,sumSeries(stats.app01.cpu.total.*)), 100)

哪个应该基本上以百分比显示结果。我注意到当我绘制这样的图形时,我得到了相同的结果:

asPercent(stats.app01.cpu.total.user,sumSeries(stats.app01.cpu.total.*))

我的问题在于我注意到曲线在不断增长 - 只是微小的一小部分,但它正在增长 - 我无法真正理解为什么。事实上,它应该是相当平坦的,并且取决于取样时的CPU使用率而下降和增长。我当然不希望有增长的趋势。但是我可能会遗漏一些东西因此我会转向这里寻求帮助。

1 个答案:

答案 0 :(得分:4)

/proc/stat报告的值是自系统首次启动以来每类工作所花费的CPU时间总量的度量。为了测量某个时间点的CPU活动,您需要获取这些值的导数。

asPercent(derivative(stats.app01.cpu.total.user),
          sumSeries(derivative(stats.app01.cpu.total.*)))