所谓“循环”其实是一种存储数据的方式,使用固定大小的空间来存储数据,并有一个指针指向最新数据的位置。我们可以把用于存储数据的数据库空间想象成一个圆,上面有很多刻度。这些刻度的位置代表数据的存储位置。所谓的指针可以认为是从圆心指向这些刻度的一条直线。当数据读写时,指针会自动移动。需要注意的是,这个圆没有起点和终点,因此指针可以继续移动,而不用担心到达终点后无法向前移动。一段时间后,当所有空间都被数据填满时,存储从头开始。这样,整个存储空间的大小就是一个固定值。所以RRDtool是一个使用类似方法存储数据的工具。 RRDtool使用的数据库文件的后缀名为“.rrd”。如下图,
0 {IMG_0: Ahr0CHM6LY9PBWFNZXMYMYMDE1LMNUYMXVZ3MUY2JSB2CVOTG4MZE2LZIWMTCWNC85ODGZMJCXNJCXNJCXNTQ1NTQ1TMTMTMTMTMTMTKWOTEZMZI0N C5WBMC =/}rrd 文件格式大致分为两部分:
1.文件头信息区:
分为静头和动头两部分。
该区域包含一些版本信息和一些与数据存储区域相关的信息。例如:RRD 版本号、DS 数量、DS 名称、DS 类型、RRA 数量、RRA 类型、PDP 数据区、CDP 数据区、上次更新时间、RRA 当前更新位置等。
2.数据存储区:
该区域存储实际数据。数据的来源是根据创建RRD文件时的DS类型和相关RRA定义,通过相关计算(CF、DST)得出的。注:数据源(DS)是存储实体,RRA是数据存储的载体。从逻辑上讲,每个 RRA 都有所有 DS 的数据(计算)。
3。文件头区域(包括:静态头、DS域、RRA域、活动头、PDP数据域、CDP数据域)-------->iii RRA域: