RRDTool工具使用详解

目录

1、RRDTool简介

2、所需了解的术语

3、RRDTool工具绘图流程

4、软件安装

5、RRDTool绘图工作流程

6、实战案例

7、总结

说明:博文中涉及的图片可能不是博主绘制。

1、RRDTool简介

RRDTool是一个强大的绘图引擎,它能把以时间序列的数据用图表的的方式直观的表现出来,是由Tobias Oetiker编写的工具,并且是一款开源、自由的软件,早期的MRTG也是由Tobias Oetiker主导编写,因为MRTG有众多的不足,所以后来作者开发了RRDTool工具。

RRD是Round Robin Database的缩写,中文名为轮转数据库,数据库以rrd结尾。这种数据库由一个固定大小的数据文件来存放数据,此数据库不会像传统数据库一样为随着数据的增多而文件的大小也在增加,RRD在创建好后其文件大小就固定,可以把它想像成一个圆,圆的众多直径把圆划分成一个个扇形,每个扇形就是可以存数据的槽位,每个槽位上被打上了一个时间戳,在圆心上有一个指针,随着时间的流逝,取回数据后,指针会负责把数据填充在相应的槽位上,当指针转了360度后,最开始的数据就会被覆盖,就这样RRD循环填充着数据,其工作方式如下图所示:

2、所需了解的术语

这个数据库里存储的数据未必是我们直接获取到的源数据,采用一些数据搜集工具,如脚本、shell命令、SNMP等工具在一定时间间隔里把数据搜集填充到rrd数据库中,这些需要数据搜集的对象叫DS,一个DS里在一个时间里可以搜集的数据可以有多个,比如一个时间点上对网卡来说有进来的流量,也有流出的流量,所以这是2个数据成为一组数据。源数据获取到后是存放在一个数据库的一个临时区域,这些源数据叫做PDP,RRDTool把这些PDP数据作为数据源通过分组、再利用聚合函数计算后把计算后的结果放在RRD数据库的时间槽(time slot)上,这些数据叫做CDP,CDP才是RRDTool绘图时真正打交道的数据,源数据只是数据搜集工具搜集交到RRDTool的源数据,这些数据需要再次整理成CDP后RRDTool才能调用。在从源数据中取数据做聚合计算时会有一个挑选数据的基准,也就是说是以几个源数据为一组做聚合,根据现实需求的不同,对源数据可以很灵活的选择不同的时间段提取源数据,再聚合提取不同的聚合值,这样就产生不同组别的CDP数据,这些有相同以相同时间段挑选源数据及相同聚合函数计算的结果组成的数据就在RRA,所以根据挑选源数据的标准及采用的聚合函数的不同,RRA可以有多组。

整理一下涉及到的术语:

DS:Data Source  数据源,用于定义搜集数据的工具所搜集数据的一些特性

Time Solt:时间槽,用于存放通过聚合后的数据区域

PDP:Primary Data Point  主数据节点,每个时间点产生的数据,即是搜集的源数据,没有做聚合的数据

CDP(Consolidation Data Point  聚合数据节点):通过对获取的源数据分组、聚合计算后得到的数据叫CDP,

RRA(Round Robin Archive 轮转归档):以相同的分组、聚合函数计算后的CDP数据组就组成了RRA

Resolution(解析度):这是一个时间跨度,表示在做聚合计算时是以几个连续的time slot里的数据做聚合,在默认时rrd是以300秒的间隔产生一个time slot。

CF:Consolidation Function,合并函数或聚合函数,以RRDTool中有AVERAGE、MAX、MIN、LAST4种

以一个图来说明PDP、CDP、RRA之间的关系:

PDP是以规定的时间间隔(默认为300秒)搜集的源数据,第一个RRA以4个PDP(即4*300秒)为一组做CF后组成的数据,第二个RRA则是以10个PDP为一组做CF后组成的数据。

3、RRDTool工具绘图流程

先是做搜集工具搜集源数据,再把这些数据以一定时间间隔填充到rrd数据库,再从源数据中以定义的时间间隔为组通过CF计算后生成RRA数据,再由RRDTool抽取出RRA数据绘制成图表。发一个图来说明:

第一步:创建一个数据库,用于存放数据,也是绘图时的数据来源;

第二步:数据采集,RRDTool没有自带数据采集功能,需要自己用脚本、命令、SNMP等方式采用所要绘图的数据;

第三步:数据采集后,通过分组,CF后把数据更新到数据库中;

第四步:因为RRDTool绘制的是以时间序列的走势图,所以第二到第四步是循环进行的。

4、软件安装

RRDTool工具在众多平台都可以运行,我这里以CentOS(CentOS 6.4_x86_64)平台为例,在这里下载所需包http://packages.express.org/rrdtool/

[[email protected] rrdtools]# pwd
/root/software/rrdtools
[[email protected] rrdtools]# ls
rrdtool-1.4.7-1.el6.wrl.x86_64.rpm  rrdtool-perl-1.4.7-1.el6.wrl.x86_64.rpm
[[email protected] rrdtools]# yum -y install *.rpm
[[email protected] rrdtools]# rrdtool -v
RRDtool 1.4.7  Copyright 1997-2012 by Tobias Oetiker <[email protected]>
               Compiled Mar 10 2013 23:57:47
Usage: rrdtool [options] command command_options
Valid commands: create, update, updatev, graph, graphv,  dump, restore,
  last, lastupdate, first, info, fetch, tune,
  resize, xport, flushcached
RRDtool is distributed under the Terms of the GNU General
Public License Version 2. (www.gnu.org/copyleft/gpl.html)
For more information read the RRD manpages

rrdtool安装好后不需要额外的什么配置,因为它的工作不依赖配置文件,下边将介绍一些学用的指令。

5、RRDTool常用指令

回想一下第3节中的RRDTool的绘图流程图,第一步创建rrd数据库,RRDTool提供了create来创建这个数据;第二步的数据搜集工作RRDTool无法完成,也就没有相关指令做这部分工作;第三步的数据更新工作有update命令;第四步绘图有graph命令,下边就一一介绍这三个子命令的使用方法。

5.1、数据库创建命令

语法: rrdtool create filename [--start|-b start time] [--step|-s step] [--no-overwrite] [DS:ds-name:DST:dst arguments] [RRA:CF:cf arguments]

命令分解:

create:表示创建数据库

filename:表示数据库名称,以rrd结尾

--start|-b start time:表示数据库的time slot的起点是哪个时间戳(1970年1月1日0点0分0秒到目前的秒数),默认是(now-10s)

-step|-s step:定义rrd接收数据的时间间隔,这个时间间隔接收到的数据叫做PDP,默认是300秒的时间间隔

DS:ds-name:DST:dst arguments:这是定义RRDTool接受什么数据源的数据更新,可以定义多个数据源

DS:Date Source,定义表示开始定义一个数据源

ds-name:这个数据源的名称,由最多19个包括[a-zA-Z0-9_]的字符组成

DST:Define Source Type,表示数据源的类型,数据类型有5个值(GAUGE,COUNTER,DERIVE,ABSOLUTE,COMPUTE),最后跟上数据类型的参数

RRA:CF:cf arguments:定义一组RRA

RRA:Round Robin Archive,表示开始定义一个轮转归档信息

CF:定义一个聚合函数

数据源DS的格式为详解:

DS:ds-name:GAUGE | COUNTER | DERIVE | ABSOLUTE:heartbeat:min:max

GAUGE:表示rrd接收到什么值数据库中就保存什么值,不作任何修改;

COUNTER:保存的是相对值,比如网卡已接收数据包的数量,这个数量会依次增加,而记录时是这样记录的,假如第一次记录为100,在到达第二次记录时间时网卡又接收了150个包,那在第二个时间点网卡已接收的数据包为250个,但COUNTER这种类型就记录相对于前一次数据包的改变量,即150个,依次类推,第三次记录相对前一次数据包的改变量。COUNTER这种这种类型需要记录的数据在后一个数据会大于等于前一个数据的特性,即有递增的特性。

DERIVE:也是记录的相对值,但没有数据递增的要求,像记录温度的变化就可用此类型。

ABSOLUTE这个数据类型记录的数据是起初是有一个数据作为参考,然后用接收到数据与初始数据计算后得到的数据。

heartbeat:min:max这三个参数的含义:

heartbeat :表示心跳数,它的意义是rrdtool如果在设定心跳的时间内没有收到数据,那就把这个从数据定为“UNKNOWN”

min:max表示rrdtool所能存储数据的最小值与最大值,不作限制就U代替

COMPUTE有自己的格式,这个数据类型不太懂,就不做介绍,格式如下:

DS:ds-name:COMPUTE:rpn-expression

轮转归档数据的定义格式详解:

RRA:AVERAGE | MIN | MAX | LAST:xff:steps:rows

xff:表示一个比例值,即在聚合计算中挑选出的PDP那一组数据中有多大比例的数据为UNKNOWN,如果这个UNKNOWN状态所占比例值小于我们定义的值,那就认为数据是可用的,否则此数据为不可用,一般设置为“0.5”

steps:定义此聚合计算是对几个连续的PDP进行聚合计算的

rows:定义保存以steps定义的值做聚合后,需要保存这样的数据的个数

此命令详细的说明可参考这里的篇译文http://blog.sina.com.cn/s/blog_4e424e2101000b5s.html,http://blog.csdn.net/ysuncn/article/details/1723672

5.2、数据更新命令

语法:

rrdtool {update | updatev} filename [--template|-t ds-name[:ds-name]...]

[--daemon address] [--] N|timestamp:value[:value...]  [email protected][:value...]

[timestamp:value[:value...] ...]

filename:表示用create命令创建的rrd数据库文件;

--template|-t ds-name[:ds-name]...:这里表示插入rrd数据库文件时DS的顺序,因为在rrd的一个time slot上可以存放多个数据,向里插入数据时要按照create数据库时的定义ds的顺序插入,不然就要定义此选项来指定一个新的ds顺序;

N|timestamp:value[:value...]:这里定义向rrd数据库插入的数据,格式为“时间:具体数据”,N表示当前时间,timestamp表示一个时间戳,后边接的值可以有多个,当create数据库时定义了多个ds时值就会有多个,这里value的顺序要和create数据库时定义的ds的顺序相同或是与"--template|-t ds-name[:ds-name]..."重新定义的顺序相同

5.3、查看数据库的数据

语法:

rrdtool fetch filename CF [--resolution|-r resolution] [--start|-s start]

[--end|-e end] [--daemon address]

filename:表示以rrd结尾的那个数据库文件;

CF:表示那4个聚合函数中的一个,具体就是在create数据库时定义的RRA中的聚合函数

--resolution|-r resolution:这是表示解析度,具体就是在create数据库时的定义接收数据的时间间隔的数量与在定义RRA“RRA:AVERAGE | MIN | MAX | LAST:xff:steps:rows”中steps的乘积;

5.4、绘图命令

命令中有许多选项在实际工作中可以不指定,但需要了解。

语法:

rrdtool graph|graphv filename [option ...]  [data definition ...]  [data   calculation ...]  [variable definition ...]  [graph element ...]  [print    element ...]

OPTIONS

Time range

[-s|--start time]  指定所绘制图的开始时间,横坐标的起点时间

[-e|--end time]   指定所绘制图的结束时间,横坐标的结束时间

[-S|--step seconds]  表示对应的解析度

Labels

[-t|--title string]   指定图片的标题信息

[-v|--vertical-label string]  y轴的标签说明

Size

[-w|--width pixels]   指定图像的宽度,单位为像素

[-h|--height pixels]   指定图像的高度

[-j|--only-graph]     绘制成预览图

[-D|--full-size-mode]  图片能自动缩放

Limits

[-u|--upper-limit value]   指定y轴显示数值最大数

[-l|--lower-limit value]    指定y轴显示数值最小数

[-r|--rigid]   指定好y轴的上下限值后就不再自动缩放

[-A|--alt-autoscale]  即使指定好y轴的上下限后依然可缩放,但不能超过上下限值。

[-J|--alt-autoscale-min]   表示只自动缩放最小值

[-M|--alt-autoscale-max]  表示只自动缩放最大值

[-N|--no-gridfit]  不显示网格线

X-Axis

[-x|--x-grid GTM:GST:MTM:MST:LTM:LST:LPR:LFM]   指定横坐标的一系列格式

[-x|--x-grid none]

举例:

--x-grid MINUTE:10:HOUR:1:HOUR:4:0:%X,这里表示每10分钟间隔显示一个基准网格线,以每小时间隔显示一个主网格线,每4个小时间隔显示一个x轴上的标签,“0:%X”表示显示标签的格式

Y-Axis

[-y|--y-grid grid step:label factor]   指定y坐标的格式

[- y|--y-grid none]

从数据库获取数据的的数据定义格式:

DEF:vname=rrdfile:ds-name:CF[:step=step][:start=time][:end=time]   数据源的指定格式

DEF:这是关键字

vname:自定义一个变量名

rrdfile:指定rrd数据库文件的路径

ds-name:指定想获取数据源中的在create中定义的DS名称

CF:定义以哪种聚合函数取出数据

选择画线条图的格式:

LINE[width]:value[#color][:[legend][:STACK][:skipscale][:dashes[=on_s[,off_s[,on_s,off_s]...]][:dash-offset=offset]]]

LINE[width]:表示选择线条类型绘图width表示线条的粗细,一般有1,2,3三个值

value:表示在DEF中定义的vname

#color:表示以哪种颜色来绘制线形图,不定义颜色时线条不可见

legend:表示显示绘制线条的图例信息

6、实战案例

案例1:每5秒生成一个随机数存放到rrd数据库,我们要进行绘图的值是每5秒的平均值,每50秒的平均值,每500秒的平均值。且要能绘制24小时内的每5秒的平均值的图,要能绘制两天内的每50秒平均值的图,要能绘制1个星期的每500秒的平均值的图。

[[email protected] ~]# rrdtool create test.rrd --step 5 DS:testds:GAUGE:8:0:U RRA:AVERAGE:0.5:1:17280 RRA:AVERAGE:0.5:10:3456 RRA:AVERAGE:0.5:100:1210
#17280是假设数据保存24小时计算得来的,86400/(5*1)=17280;(86400*2)/(5*10)=3456;(86400*7)/(5*100)=1209.6
[[email protected] ~]# rrdtool info test.rrd  #查看数据库的信息
filename = "test.rrd"
rrd_version = "0003"
step = 5
last_update = 1433000058
header_size = 1000
ds[testds].index = 0
ds[testds].type = "GAUGE"
ds[testds].minimal_heartbeat = 8
ds[testds].min = 0.0000000000e+00
ds[testds].max = NaN
ds[testds].last_ds = "U"
ds[testds].value = 0.0000000000e+00
ds[testds].unknown_sec = 3
rra[0].cf = "AVERAGE"
rra[0].rows = 17280
rra[0].cur_row = 11684
rra[0].pdp_per_row = 1
rra[0].xff = 5.0000000000e-01
rra[0].cdp_prep[0].value = NaN
rra[0].cdp_prep[0].unknown_datapoints = 0
rra[1].cf = "AVERAGE"
rra[1].rows = 3456
rra[1].cur_row = 1801
rra[1].pdp_per_row = 10
rra[1].xff = 5.0000000000e-01
rra[1].cdp_prep[0].value = NaN
rra[1].cdp_prep[0].unknown_datapoints = 1
rra[2].cf = "AVERAGE"
rra[2].rows = 1210
rra[2].cur_row = 934
rra[2].pdp_per_row = 100
rra[2].xff = 5.0000000000e-01
rra[2].cdp_prep[0].value = NaN
rra[2].cdp_prep[0].unknown_datapoints = 11

以脚本的方式把rrdtool update命令封装起来把随机产生的数据写入到rrd数据库中:

[[email protected] ~]# vim genval.sh
#!/bib/bash
#
while true;do 
    rrdtool update /root/test.rrd N:$RANDOM
    sleep 5
done
[[email protected] ~]# chmod +x genval.sh
[[email protected] ~]# bash  -x genval.sh  #让脚本运行一段时间
[[email protected] ~]# rrdtool fetch -r 5 /root/test.rrd AVERAGE  
#当脚本运行一段时间后,查看数据库中的数据,“-r 5”表示获取数据的解析度,即表示以每5秒的时间取得的数据聚合后取AVERAGE的值。在我们create数据库时本来就是规定每5秒获取一个数据,所以这里就是在time slot上的这一个值自己给自己做平均计算,其实平均后就是本身。在此案例中我们要能查看每5秒,每50秒,第500秒的平均值,所以这里的"-r"也可指定50,500来查看相应的数据,如果指定一个解析度是我们没有事先规划好的,那rrd会智能选择一个临近你指定的解析度来获取数据,比如指定了"-r 300",那rrd会在"50"和“500”这两个解析度间权衡,最终会以“-r 500”来列出数据,这个可以验证的。
......
1433046645: 1.0455325451e+04
1433046650: 1.4075998904e+04
1433046655: 6.5947377492e+03
1433046660: 8.0364061710e+03
1433046665: 3.1844697036e+04
1433046670: 3.2457433752e+04
1433046675: 1.5680352955e+04
1433046680: 2.8218131930e+04
1433046685: 8.4819832280e+02
1433046690: 1.4497840578e+04
1433046695: 1.4497840578e+04
1433046700: 7.7085841264e+03
1433046705: 2.9758471149e+04
1433046710: 1.0487534120e+04
1433046715: 2.9641303155e+04
1433046720: 2.6827516985e+04
1433046725: 1.9122574796e+04
1433046730: 2.6697401840e+04
1433046735: 1.2234064520e+03
1433046740: 1.5563750052e+04
1433046745: 2.5905735010e+04
......

rrd中有数据了,那现在创建一个图形试试:

[[email protected] ~]# rrdtool graph a.png --step 5 -s 1433042265 -t Test -v vtest DEF:vtest=/root/test.rrd:testds:AVERAGE LINE1:vtest#FF0000:testline  #有警告信息
(process:3366): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type=‘PangoRenderFc‘, script=‘common‘
(process:3366): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type=‘PangoRenderFc‘, script=‘latin‘
521x173

把图片导出后打开是这样的

看上去字体的问题,把字体库安装好后再尝试:

[[email protected] ~]# yum -y install xorg-x11-font*

再次尝试后得到每5秒获得随机数平均值的趋势图如下:

[[email protected] ~]# rrdtool graph d.png -s 1433042265 -t Test -v vtest DEF:vtest=/root/test.rrd:testds:AVERAGE:step=5 LINE1:vtest#FF0000:testline

注:这命令与上边的命令功能一样只是把解析度这个参数写在DEF的定义里了

把set=5更换成set=50就得到了每50秒获得随机数的平均值的趋势图,如下

[[email protected] ~]# rrdtool graph e.png -s 1433042265 -t Test -v vtest DEF:vtest=/root/test.rrd:testds:AVERAGE:step=50 LINE1:vtest#FF0000:testline

试想一下能不能把每5秒获得的平均数的走势与每50秒的平均值的趋势图用两条线条绘制在一个图形中呢,这是可以的:

[[email protected] ~]# rrdtool graph f.png -s 1433042265 -t Test -v Title DEF:vtest1=/root/test.rrd:testds:AVERAGE:step=5 DEF:vtest2=/root/test.rrd:testds:AVERAGE:step=50 LINE1:vtest1#FF0000:line1 LINE1:vtest2#00FF00:line2

案例2:

案例2:绘制mysql服务器中每3秒,每30秒中发生查询的平圴值的走势图,且每3秒中平均值的走势图能保存24小时内的数据,每30秒平均值的走势图能保存24小时内的数据。且图例中还要显示出最后30秒的取值中值的最大值和最后那一个可用值。

[[email protected] ~]# rrdtool create mysql.rrd --step 3 DS:myselect:COUNTER:5:0:U RRA:AVERAGE:0.5:1:28800 RRA:AVERAGE:0.5:10:2880 RRA:MAX:0.5:10:2880 RRA:LAST:0.5:10:2880
 注:这里的2880是这样计算出来的,24*60*60/(3*10)=2880

接下来想办法为这个数据库文件中填充数据,以获取mysql数据库执行查询操作的计数为数据来填充rrd数据库,在mysql数据库中,在mysql终端执行“show global status like ‘com_select‘”就能查询mysql被查询的次数,如下:

MariaDB [(none)]> show global status like ‘com_select‘;
+---------------+--------+
| Variable_name | Value  |
+---------------+--------+
| Com_select    | 237823 |
+---------------+--------+

在shell下获取此值如下操作:

[[email protected] ~]# mysql -uroot -p111111 -e "show global status like ‘com_select‘"
+---------------+--------+
| Variable_name | Value  |
+---------------+--------+
| Com_select    | 237824 |
+---------------+--------+

去掉表格的外框加上参数batch即可:

[[email protected] ~]# mysql -uroot -p111111 --batch -e "show global status like ‘com_select‘"
Variable_nameValue
Com_select237825

最后想要得到那个查询的值加上过虑条件即可:

[[email protected] ~]# mysql -uroot -p111111 --batch -e "show global status like ‘com_select‘" | awk ‘/Com_select/{print $2}‘
237828

然后写成一个脚本自动每隔3秒就把获取到的mysql查询的值写进rrd数据库中,脚本如下:

[[email protected] ~]# vim getselect.sh
#!/bin/bash
#
while true;do
   SELECT=`mysql -uroot -p111111 --batch -e "SHOW GLOBAL STATUS LIKE ‘com_select‘" | awk ‘/Com_select/{print $2}‘`
    rrdtool update /root/mysql.rrd N:$SELECT
    sleep 3
done
[[email protected] ~]# chmod +x getselect.sh
[[email protected] ~]# bash -x getselect.sh  #把脚本执行着

为了更快的让Com_select的数值增加,现在需要向mysql数据库发起查询请求,让查询的数值增加,依然用脚本来完成,如下:

[[email protected] ~]# vim insert.sh
#!/bin/bash
#
for I in {1..200000};do
    mysql -uroot -p111111 -e "INSERT INTO testdb.tb1(NAME) VALUES (‘stu$I‘)"
    mysql -uroot -p111111 -e "SELECT * FROM testdb.tb1" &> /dev/null
done
[[email protected] ~]# chmod +x insert.sh
[[email protected] ~]# bash -x insert.sh  #执行脚本

现在mysql中的Com_select的值会快速增长,一会就可以用rrdtool工具绘制图形了。

[[email protected] ~]# rrdtool fetch /root/mysql.rrd -r 30 AVERAGE  #通过此命令查找一个绘图起点的时间戳
......
1433062920: -nan
1433062923: -nan
1433062926: -nan
1433062929: -nan
1433062932: -nan
1433062935: -nan
1433062938: -nan
1433062941: -nan
1433062944: -nan
1433062947: -nan
1433062950: -nan
1433062953: -nan
1433062956: 2.6646155669e-01
1433062959: 3.2913903433e-01
1433062962: 3.3101155484e-01
1433062965: 3.3063372547e-01
1433062968: 3.3057613269e-01
........
[[email protected] ~]# rrdtool graph mysql.png -s 1433062920 -t "mysql select" -v "average select/3" DEF:select3=/root/mysql.rrd:myselect:AVERAGE:step=3 LINE1:select3#FF0000:"SELECT"

绘制的图如下所示:

再把每30秒取得的平均查询数量也绘制出图形:

[[email protected] ~]# rrdtool graph mysql.png -s 1433062920 -t "mysql select" -v "average select/30" DEF:select3=/root/mysql.rrd:myselect:AVERAGE:step=30 LINE1:select3#FF0000:"SELECT"

在定义rrd数据库是我们定义了RRA是有最大值和当前值的,在图片中可以把最后30秒中的最大值和最后30秒中的最后那一个可用数值也显示出来,这需要一个指令来完成,如下:

GPRINT:vname:CF:format

GPRINT:关键字

vname:表示在定义DEF时定义的变量值

CF:定义我们在create数据库时定义的聚合函数

format:显示图例的格式,这里有关于格式的详细说明http://oss.oetiker.ch/rrdtool/doc/rrdgraph_graph.en.html#___top,一般常用“%#.#lf”(lf是字母LF的小写),第一个#表示打印出的数字中小数点前有几位,第二个“#”表示保留几个小数位,如:12345.6789 的格式为(%5.4lf)

[[email protected] ~]# rrdtool graph mysql.png -s 1433062920 -t "mysql select" -v "average select/30" DEF:select3=/root/mysql.rrd:myselect:AVERAGE:step=30 DEF:max30=/root/mysql.rrd:myselect:MAX:step=30 LINE1:select3#FF0000:"SELECT" GPRINT:max30:MAX:"MAXIMUN_PER_30s\: %6.2lf"

[[email protected] ~]# rrdtool graph mysql.png -s 1433062920 -t "mysql select" -v "average select/30" DEF:select3=/root/mysql.rrd:myselect:AVERAGE:step=30 DEF:max30=/root/mysql.rrd:myselect:MAX:step=30 DEF:last30=/root/mysql.rrd:myselect:LAST:step=30 LINE1:select3#FF0000:"SELECT" GPRINT:max30:MAX:"MAXIMUN_PER_30s\: %6.2lf" GPRINT:last30:LAST:"CURRENT\: %4.2lf"

7、总结

通过对RRDTool这一工具学习与总结,我们了解到它是一个强大的绘图工具,且有一个独特的数据库叫轮转数据库,这个数据库一旦创建那文件的大小的确定,所能绘图的时间范围也就确定了,但在绘图时所使用的命令复杂,不容易掌握。

时间: 2024-10-13 08:56:32

RRDTool工具使用详解的相关文章

Linux 性能测试工具Lmbench详解

Linux 性能测试工具Lmbench详解 2010-06-04 16:07 佚名 评测中心 字号:T | T Lmbench 是一套简易可移植的,符合ANSI/C 标准为UNIX/POSIX 而制定的微型测评工具.一般来说,它衡量两个关键特征:反应时间和带宽.Lmbench 旨在使系统开发者深入了解关键操作的基础成本. AD:2014WOT全球软件技术峰会北京站 课程视频发布 Linux 性能测试工具Lmbench 是一套简易可移植的,符合ANSI/C 标准为UNIX/POSIX 而制定的微型

Android APK优化工具Zipalign详解

最近在googl play上发布apk要优化 Android SDK中包含一个"zipalign"的工具,它能够对打包的应用程序进行优化.在你的应用程序上运行zipalign,使得在运行时Android与应用程序间的交互更加有效率.因此,这种方式能够让应用程序和整个系统运行得更快.我们强烈推荐在新的和已经发布的程序上使用zipalign工具来得到优化后的版本 一.这里下载android SDK,只为了用他的zipalign工具,当然什么时候大家有兴趣了用来开发两个小程序也是很简单的 A

【转】Linux命令工具 top详解

Linux命令工具 top详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最"敏感"的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序:而且该命令的很多特性都可以通过交互式命令或者在个人定制

抓包工具Fidder详解(主要来抓取Android中app的请求)

抓包工具Fidder详解(主要来抓取Android中app的请求) 今天闲着没吊事,来写一篇关于怎么抓取Android中的app数据包?工欲行其事,必先利其器,上网google了一下,发现了一款神器:Fiddler,这个貌似是所有软件开发者必备神器呀!这款工具不仅可以抓取PC上开发web时候的数据包,而且可以抓取移动端(Android,Iphone,WindowPhone等都可以),太强大了,以前搞web的时候,知道有一款叫做HttpWatch工具,可以抓取web的请求数据包的,但是和这款神器来

Linux命令工具 top详解

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最"敏感"的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序:而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定. 常在linux

轻量级高可用实现工具--keepalived详解

一 .keepalived简介 keepalived:它的诞生最初是为ipvs(一些服务,内核中的一些规则)提供高可用性的,最初最主要目的是能够自主调用ipvsadm来生成规则,并且能够自动实现将用户访问的地址转移到其他节点上进行实现的. keepalived:核心包含两个ckechers和VRRP协议. ckeckers #检查服务检查reserved的健康状况的,基于脚本也可以服务本身的健康状况.这里是实现ipvs后端健康状况的检测的. VRRP # Virtual Router Redun

引导工具GRUB详解

引导工具GRUB详解 导读 引导程序是驻留在硬盘第一个扇区(MPR.主引导记录)的程序.GRUB是一个功能强大的多系统引导程序,专门处理Linux与其它操作系统共存的问题.下面就由我介绍一下grub.conf文件里的具体内容及其含义. 使用一下命令可以查看grub.conf文件内容: #vi /boot/grub/menu.lst 参数解释 1. default=0 # default后加一个数字n,表示n+1个"title"操作系统,0表示第一个"title"?的

xtrabackup备份工具使用详解

xtrabackup备份工具使用详解 innobackupex: 需要MySQL服务处于运行状态 [percona]下载 wget https://www.percona.com/downloads/XtraBackup/XtraBackup-2.1.8/RPM/rhel6/x86_64/percona-xtrabackup-2.1.8-733.rhel6.x86_64.rpm wget https://www.percona.com/downloads/percona-toolkit/2.2.

IE8“开发人员工具”使用详解上(各级菜单详解)

来源: http://www.cnblogs.com/JustinYoung/archive/2009/03/24/kaifarenyuangongju.html IE8“开发人员工具”使用详解上(各级菜单详解) IE8正式版已经发布了.本篇文章不会非常扯蛋地去进行什么评测,然后给出什么“Chrome运行JavaScript能力是IE8的15倍”.什么“IE8页面渲染速度是Safari的2.456倍”.什么“IE8的抗强暴能力比FireFox高出1.235倍” 这样的操蛋的结论.我管谁比谁强多少