Linux 解释一下MRTG如何测量传入数据的差异

Linux 解释一下MRTG如何测量传入数据的差异,linux,monitoring,rrdtool,rrd,mrtg,Linux,Monitoring,Rrdtool,Rrd,Mrtg,每个人都知道MRTG至少需要一个值才能传递给它的输入 在每个目标选项中,MRTG具有“仪表”、“绝对”和默认(无选项)“如何处理传入数据”行为。或者,如何计算它 让我们来看一个基本但很流行的例子: 我们传递来自网络接口统计数据的累积数据“接口接收了多少数据包” 我们从“/proc/net/dev”获取它,或者查看特定网络接口的“ifconfig”输出。接收的字节数每次都在增加。它是累积的 因此,我可以想象,可能有两种类型的统计数据: 1.该值随时间间隔变化的速度。用另一个词来说——活动。 2.简

每个人都知道MRTG至少需要一个值才能传递给它的输入

在每个目标选项中,MRTG具有“仪表”、“绝对”和默认(无选项)“如何处理传入数据”行为。或者,如何计算它

让我们来看一个基本但很流行的例子:

我们传递来自网络接口统计数据的累积数据“接口接收了多少数据包”

我们从“/proc/net/dev”获取它,或者查看特定网络接口的“ifconfig”输出。接收的字节数每次都在增加。它是累积的

因此,我可以想象,可能有两种类型的统计数据: 1.该值随时间间隔变化的速度。用另一个词来说——活动。 2.简单,就像每分钟(或任何其他时间间隔)绘制每一个新值的不断增长的图形一样

第一个图形将是跳跃(活动)。第二,我每次都会长大

我读了两遍rrdtool和MRTG的文档,不明白上面提到的哪个选项算什么

我认为(我不确定)“仪表”按原样绘制值,没有任何微分计算(适合测量每5分钟使用多少内存或cpu)。默认或“绝对”行为尝试计算附近测量值之间的速度,但最后两个测量值之间的差异是什么

伙计们,你们能用一种简单的方式解释一下,在三个可能的选项中,哪一个选项之后是哪一种行为吗


提前感谢。

MRTG假设所有东西都是以一个比率来衡量的(即使它不是一个比率)

输入“gauge”假设您已经计算了费率;因此,提供的值按原样存储(在数据正常化之后)。这适用于CPU使用率之类的情况

类型“absolute”假定传递的值是自上次更新以来的计数。因此,将该值除以自上次更新以来的秒数,以获得以thingies/s为单位的速率。这是很少使用的,并且仅适用于某些不寻常的数据源,这些数据源在读取时重置了它们的值—例如,一个计算日志文件中的行数,然后截断日志文件的脚本

类型“counter”(默认值)假定传递的值是一个不断增长的计数,可能是16位或64位。该值与其上一个值之间的差值除以自上次更新以来的秒数,以获得以thingies/秒为单位的速率。如果它看到值减少,它将假定计数器在16位或64位上环绕。这适用于网络流量计数器,这就是为什么它是默认行为(MRTG最初是为网络流量图编写的)

类型“派生”类似于“计数器”,但允许计数器减小(导致负速率)。这不可能直接在MRTG中实现,但如果需要,您可以手动创建必要的RRD

所有类型随后执行数据规范化,以将时间戳调整为时间间隔的倍数。这对于数值较小的仪表类型比数值较大的计数器类型更为明显


有关这方面的信息,请参见

我读过,但记不清细节。”“仪表”在我看来很清楚。但是其他的看起来有雾。F.e.:“可能是16位或64位环绕”-那是什么?计数器不计数到无穷大,而是有一个最大值,然后环绕到0。。。对于32位计数器,这种情况在快速链路上经常发生。MRTG注意到了这一点,并对。。。rrdtool也是顺便说一句,但它在这方面做得更好。