有人可以向我解释此RRD中的ds [fan_speed] .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 dump'显示相同的值。)
它是什么?
(通常,此设备上的风扇为60(%),例如rra [2] .cdp_prep [0] .value = 6.0000000000e + 01)
谢谢。
这就是RRD如何跟踪步进时间的时间调整值。
您上次在1360341382时间存储了一个值60。您的步骤是300,所以您最后一次RRD汇总时间为8260秒前的1360341300。 你以前的值也大概是60,因为你说这些风扇的速度是多么的稳定,所以RRD认为,既然你以前保存了60,而你在1360341382处保存了60,在1360341300和1360341382之间保存了60秒,那么这个值总是 60 * 82是4920,您看到存储的值。
为什么RRD会这样做? 那么,如果它想知道82秒的平均值是多less,那么所要做的就是把这个值除以得到60的秒数。如果你稍后再来,在1360341464(82秒后math容易)并存储值50,RRD将加上55 * 82 (55,因为它认为这个82秒期间的平均值在60到50之间)到这个值并存储它。 现在你将有9430在聚合期的头164秒。 如果RRD想要显示164期的平均值,则只需要9430和164除以57.5。
由于RRD在step边界上进行聚合,所以为了使其生活变得简单,它仅为聚合时段(本例中为300秒)创build一个存储值。 它将花费300秒的时间储存的任何价值,然后除以300.这将是该步骤的平均值,这就是存储和用于更大聚合的值。 value字段有它使用的中间值来保存时间加权总和它可以使用时,它击中下一步的边界。 这是一个优化,使聚合工作更快。