有人能向我解释一下这个RRD中的ds风扇_速度.value字段吗?
rrdtool给出:
rrd_version = "0003"
step = 300
last_update = 1360341382
ds[fan_speed].type = "GAUGE"
ds[fan_speed].minimal_heartbeat = 600
ds[fan_speed].min = 0.0000000000e+00
ds[fan_speed].max = 1.0000000000e+02
ds[fan_speed].last_ds = "60"
ds[fan_speed].value = 4.9200000000e+03 ********* ???
ds[fan_speed].unknown_sec = 0
...
rra[2].cf = "AVERAGE"
rra[2].rows = 700
rra[2].cur_row = 295
rra[2].pdp_per_row = 6
rra[2].xff = 5.0000000000e-01
rra[2].cdp_prep[0].value = 6.0000000000e+01
rra[2].cdp_prep[0].unknown_datapoints = 0(在"PDP状态“中使用'rrdtool‘显示相同的值。)
那是什么?
(通常,此设备上的风扇为60(%),如rra2.cdp_prep0.value =6.0000000000e+01中所示)
谢谢。
发布于 2013-02-08 19:16:20
这就是RRD跟踪步骤期间的时间调整值的方式。
您最后一次存储的值为60,时间为1360341382。您的步骤是300,所以最后一次RRD聚合时间是1360341300,82秒前。您以前的值也可能是60,考虑到您说这些风扇的速度是如此的恒定,所以RRD考虑到,由于您以前存储了60,而您在1360341382存储了60,在1360341300到1360341382之间的82秒内,这个值始终是60。60 * 82是4920,您看到的值是存储的。
RRD为什么要这么做?如果它想知道82秒周期的平均值是多少,它所要做的就是把这个值除以得到60秒的秒数。如果稍后出现在1360341464 (82秒后,使数学变得简单)并存储值50时,RRD将将55 * 82 (55,因为它认为这82秒的平均值介于60到50之间)添加到这个值中并存储它。现在,在聚合期的前164秒中,您将得到9430秒。如果RRD想给您显示164期间的平均值,只需9430,除以164即可得到57.5。
由于RRD聚集在step边界上,为了简化其生命,它只为聚合期创建一个存储值(在本例中为300秒)。它将用它为300秒钟节省下来的任何价值除以300。这将是该步骤的平均值,这就是存储和用于更大聚合的内容。value字段是它用来保存到达下一步边界时可以使用的时间加权总数的中间值。这是一个优化,以使聚合工作更快。
https://serverfault.com/questions/476925
复制相似问题