0

这有点棘手。我正在尝试以特定时间点的使用百分比来绘制 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 使用情况而下降和增长。我当然不会期望有增长的趋势。但我可能会遗漏一些东西,因此我转向这里寻求帮助。

4

1 回答 1

4

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

asPercent(derivative(stats.app01.cpu.total.user),
          sumSeries(derivative(stats.app01.cpu.total.*)))
于 2013-04-17T17:29:37.370 回答