Chinaunix首页 | 论坛 | 博客
  • 博客访问: 629850
  • 博文数量: 76
  • 博客积分: 3091
  • 博客等级: 中校
  • 技术积分: 996
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-11 15:40
个人简介

IT老兵,爱好胡思乱想、读书和交流,2015年底重新回到IT战场,期待再一次“贯穿”。

文章存档

2020年(11)

2018年(1)

2017年(1)

2016年(1)

2015年(1)

2014年(2)

2011年(5)

2010年(2)

2009年(4)

2008年(28)

2007年(20)

我的朋友

分类: 服务器与存储

2007-05-06 19:01:04

                                       i.              活动头部:

数据结构:

typedef struct live_head_t {

    time_t           last_up;  //最后更新时间(秒)

    long            last_up_usec;     //最后更新毫秒

} live_head_t;

说明:

last_up : RRD文件最后更新的时间(秒级)

last_up_usec:RRD文件最后更新时间(微秒级)

*仅一条数据

                                     ii.              PDP数据域:

数据结构:

typedef struct pdp_prep_t{   

    char last_ds[LAST_DS_LEN];  //目前更新rrd 文件的数据

    unival        scratch[10];   

} pdp_prep_t;

说明:

    unival        scratch[10]:该变量类型是一个结构体,变量的功能就是存储计算CDP,计算多长时间没有接受到数据,等相关的信息.在实际的rrd文件中PDP的数量为DS的数量.存储的是每个DS的相关数据信息(时间,真实数据).

                                    iii.              CDP数据域:

typedef struct cdp_prep_t{

    unival         scratch[MAX_CDP_PAR_EN];         

} cdp_prep_t;

说明:

scratch:该变量存储了与计算CDP相关的数据,如多少个PDP没有数据(与该RRAPDP的数量有关),目前CDP数据的计算值等信息.

CDP的数量与RRA的数量相同,同时每一条CDP数据里面包含所有的DS.简单的说就是CDPRRA的缩小集合,目的是为计算相同RRA中下一条RRA记录做准备.

                                   iv.              RRA指针域:

typedef struct rra_ptr_t {

    unsigned long    cur_row; //目前不同RRA数据已经更新到的

//位置

} rra_ptr_t;

小节:

       到目前位置已经清楚的看到了RRD头文件的大体面貌,至于具体的结构体内部请参考相应的代码.

       RRD头文件结构图如下(根据上面创建命令绘制)

 

 
 
 
 

 

1.RRD数据区:

数据结构:

typedef    double   rrd_value_t;  //RRD数据类型

rrd_value_t      *rrd_value;            //RRD在内存中存储形式

说明:RRD文件文件中除了RRD文件头部区域剩下的就是RRD文件数据区域.数据区域可以想象成为n*k*m 的矩阵,nRRA的数量,k为不同RRA的行数,m为数据源DS的数量.

RRD数据区域的图形请参考上面RRADS的小节.

 

                                                                                                                          (待续)

阅读(3924) | 评论(0) | 转发(0) |
0

上一篇:RRD文件格式分析(一)

下一篇:rrd_info分析

给主人留下些什么吧!~~