石墨图 CPU 使用率

gyr*_*yre 1 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
Run Code Online (Sandbox Code Playgroud)

我用来显示这些的函数是:

scale(divideSeries(stats.app01.cpu.total.user,sumSeries(stats.app01.cpu.total.*)), 100)
Run Code Online (Sandbox Code Playgroud)

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

asPercent(stats.app01.cpu.total.user,sumSeries(stats.app01.cpu.total.*))
Run Code Online (Sandbox Code Playgroud)

我的问题是,我注意到曲线在不断增长——虽然增长很小,但它正在增长——我真的不太明白为什么。事实上,它应该相当平坦,并且根据采样时的 CPU 使用情况而下降和增长。我当然不会期望出现增长趋势。但我可能会错过一些东西,因此我转向这里寻求帮助。

Ben*_*ole 5

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

asPercent(derivative(stats.app01.cpu.total.user),
          sumSeries(derivative(stats.app01.cpu.total.*)))
Run Code Online (Sandbox Code Playgroud)