1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
[root@nod0 rrdtools]
# pwd
/root/software/rrdtools
[root@nod0 rrdtools]
# ls
rrdtool-1.4.7-1.el6.wrl.x86_64.rpm rrdtool-perl-1.4.7-1.el6.wrl.x86_64.rpm
[root@nod0 rrdtools]
# yum -y install *.rpm
[root@nod0 rrdtools]
# rrdtool -v
RRDtool 1.4.7 Copyright 1997-2012 by Tobias Oetiker <tobi@oetiker.ch>
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
|
1
2
|
[root@nod0 ~]
# 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
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
[root@nod0 ~]
# 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
|
1
2
3
4
5
6
7
8
9
|
[root@nod0 ~]
# vim genval.sh
#!/bib/bash
#
while
true
;
do
rrdtool update
/root/test
.rrd N:$RANDOM
sleep
5
done
[root@nod0 ~]
# chmod +x genval.sh
[root@nod0 ~]
# bash -x genval.sh #让脚本运行一段时间
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
[root@nod0 ~]
# 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
......
|
1
2
3
4
|
[root@nod0 ~]
# 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
|
1
|
[root@nod0 ~]
# yum -y install xorg-x11-font*
|
1
|
[root@nod0 ~]
# rrdtool graph d.png -s 1433042265 -t Test -v vtest DEF:vtest=/root/test.rrd:testds:AVERAGE:step=5 LINE1:vtest#FF0000:testline
|
1
|
[root@nod0 ~]
# rrdtool graph e.png -s 1433042265 -t Test -v vtest DEF:vtest=/root/test.rrd:testds:AVERAGE:step=50 LINE1:vtest#FF0000:testline
|
1
|
[root@nod0 ~]
# 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
|
1
2
|
[root@nod0 ~]
# 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
|
1
2
3
4
5
6
|
MariaDB [(none)]> show global status like
'com_select'
;
+---------------+--------+
| Variable_name | Value |
+---------------+--------+
| Com_select | 237823 |
+---------------+--------+
|
1
2
3
4
5
6
|
[root@nod0 ~]
# mysql -uroot -p111111 -e "show global status like 'com_select'"
+---------------+--------+
| Variable_name | Value |
+---------------+--------+
| Com_select | 237824 |
+---------------+--------+
|
1
2
3
|
[root@nod0 ~]
# mysql -uroot -p111111 --batch -e "show global status like 'com_select'"
Variable_nameValue
Com_select237825
|
1
2
|
[root@nod0 ~]
# mysql -uroot -p111111 --batch -e "show global status like 'com_select'" | awk '/Com_select/{print $2}'
237828
|
1
2
3
4
5
6
7
8
9
10
|
[root@nod0 ~]
# 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
[root@nod0 ~]
# chmod +x getselect.sh
[root@nod0 ~]
# bash -x getselect.sh #把脚本执行着
|
1
2
3
4
5
6
7
8
9
|
[root@nod0 ~]
# 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
[root@nod0 ~]
# chmod +x insert.sh
[root@nod0 ~]
# bash -x insert.sh #执行脚本
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
[root@nod0 ~]
# 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
........
|
1
|
[root@nod0 ~]
# 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"
|
1
|
[root@nod0 ~]
# 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"
|
1
|
[root@nod0 ~]
# 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"
|
1
|
[root@nod0 ~]
# 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"
|