学习啦 > 学习电脑 > 网络知识 > 网络技术 >

RRDtool是什么在Linux如何使用

时间: 加城1195 分享

  RRDtool是指Round Robin Database工具,即环状数据库。从功能上说,RRDtool可用于数据存储+数据展示。著名的网络流量绘图软件MRTG和集群监控系统Ganglia都使用的RRDtool,那么在Linux上要如何使用RRDtool呢?下面小编就给大家介绍下Linux使用RRDtool的方法,一起来学习下吧。

  一、简介

  数据存储方面,RRDtool采用“Round Robin”模式存储数据。所谓“Round Robin”是一种存储数据的方式,使用固定大小的空间来存储数据,并有指针指向最新的数据的位置。我们可以把用于存储数据的数据库空间看成一个圆,上面有很多刻度,这些刻度所在的位置就代表用于存储数据的地方。所谓指针,可以认为是从圆心指向这些刻度的一条线。指针会随着数据的读写自动移动。要注意的是,这个圆没有起点和终点,所以指针可以一直移动,而不担心到达终点后无法继续写入的问题。在一段时间后,当所有的空间都存满数据,就又从头开始存放。这样整个存储空间的大小就是一个固定的数值。RRDtool所使用数据库文件的后缀名是“.rrd”。

  数据展示方面,RRDtool可以看作是一个强大的绘图引擎。下图是其官网上的一张效果图,我们大致了解RRDtool的绘图能力。

  二、基本语法

  RRDtool的使用分为三个部分,建库、更新数据、绘图(具体使用shell命令)。因此,我们也分上述三个部分介绍基本语法。

  1、建库

  为表述清晰,这里将建库命令写成分段形式,实际应用时应写成一串。

  rrdtool create cpu.rrd # 数据库名称

  --start $(date -d ‘1 days ago’ +%s) # 开始时间

  --step 15 # 更新数据时间间隔

  DS:cpu_user:GAUGE:120:0:NaN # DS:cpu_user,相当于变量名;后面的是DST:GAUGE,相当于数据类型;后面120是heartbeat,是最大没有数据的间隔;后面两个NaN分别是最小值、最大值限制。

  DS:cpu_system:GAUGE:120:0:NaN

  DS:cpu_wio:GAUGE:120:0:NaN

  DS:cpu_idle:GAUGE:120:0:NaN

  RRA:AVERAGE:0.5:1:244 # RRA是数据存储的形式,数据表

  RRA:AVERAGE:0.5:24:244 # CF合并统计 有average、max、min、last四种

  RRA:AVERAGE:0.5:168:244 # 0.5是xff,表示缺少数据量比例大于0.5时,数据显示为空。

  RRA:AVERAGE:0.5:672:244 # PDP,计算出来的一个数据点,如平均值等

  RRA:AVERAGE:0.5:5760:374 # CDP,使用多个PDP合并成一个CDP,CDP是真正存入RRA的值,也是绘图时使用的值,1、24、168、672等表示多少个PDP合并成一个CDP

  具体参数意义大家参见注释,本段代码的大意是创建一个rrd数据库cpu.rrd,保存cpu相关信息,每15秒更新一次数据。

  二、更新

  更新比较简单,就是定时向数据库(即.rrd文件)中写入数据。每次写入命令,类似下面指令。

  rrdtool updatev /var/lib/monitor/rrds/server/cpu.rrd 1382646278:0.733211:0.433261:1.516414:97.317114

  # /var/lib/monitor/rrds/server/cpu.rrd 是数据库文件

  # 1382646278是时间戳

  # 0.733211:0.433261:1.516414:97.317114是写入的具体数值,分别指代cpu_user、cpu_system、cpu_wio、cpu_idle。

  实际使用时应当写一个程序定时获取cpu利用率,并执行上述命令,将数据写入数据库。

  三、绘图

  与建库时类似,为表述清晰,这里将绘图命令写成分段形式,实际应用时应写成一串。

  /usr/bin/rrdtool graph /home/xx/cpu.png

  --start ‘-3600’ --end N // 过去一小时的时间

  --width 385 --height 190 // 图片大小

  --title ‘过去一小时CPU使用情况’ --upper-limit 100 --lower-limit 0 // 题目和上下限

  --vertical-label 百分比 --rigid

  DEF:‘cpu_user’=‘/var/lib/monitor/rrds/server/cpu.rrd’:‘cpu_user’:AVERAGE # 获得变量cpu_user

  AREA:‘cpu_user’#FF0000:‘用户’ // 图形形式,包括AREA、STACK、LINE等

  VDEF:cpu_user_last=cpu_user,LAST // 变量定义,取具体值

  VDEF:cpu_user_avg=cpu_user,AVERAGE

  GPRINT:‘cpu_user_last’:‘ Now\:%5.1lf%s’ // 在图片中打印数值

  GPRINT:‘cpu_user_avg’:‘ Avg\:%5.1lf%s\j’ DEF:‘cpu_system’=‘/var/lib/monitor/rrds/server/cpu.rrd’:‘cpu_system’:AVERAGE STACK:‘cpu_system’#33cc33:‘系统’ VDEF:cpu_system_last=cpu_system,LAST VDEF:cpu_system_avg=cpu_system,AVERAGE GPRINT:‘cpu_system_last’:‘ Now\:%5.1lf%s’ GPRINT:‘cpu_system_avg’:‘ Avg\:%5.1lf%s\j’ DEF:‘cpu_wio’=‘/var/lib/monitor/rrds/server/cpu.rrd’:‘cpu_wio’:AVERAGE STACK:‘cpu_wio’#1C86EE:‘等待’ VDEF:cpu_wio_last=cpu_wio,LAST VDEF:cpu_wio_avg=cpu_wio,AVERAGE GPRINT:‘cpu_wio_last’:‘ Now\:%5.1lf%s’ GPRINT:‘cpu_wio_avg’:‘ Avg\:%5.1lf%s\j’ DEF:‘cpu_idle’=‘/var/lib/monitor/rrds/server/cpu.rrd’:‘cpu_idle’:AVERAGE STACK:‘cpu_idle’#e2e2f2:‘空闲’ VDEF:cpu_idle_last=cpu_idle,LAST VDEF:cpu_idle_avg=cpu_idle,AVERAGE GPRINT:‘cpu_idle_last’:‘ Now\:%5.1lf%s’ GPRINT:‘cpu_idle_avg’:‘ Avg\:%5.1lf%s\j’

  补充:MySQL 数据库常用命令

  create database name; 创建数据库

  use databasename; 进入数据库

  drop database name 直接删除数据库,不提醒

  show tables; 显示表

  describe tablename; 查看表的结构

  select 中加上distinct去除重复字段

  mysqladmin drop databasename 删除数据库前,有提示。

  显示当前mysql版本和当前日期

  select version(),current_date;

  数据库维护方法

  在MySQL使用的过程中,在系统运行一段时间后,可能会产生碎片,造成空间的浪费,所以有必要定期的对MySQL进行碎片整理。

  当删除id=2的记录时候,发生的现象

  这个时候发现磁盘的空间并没有减少。这种现象就叫做碎片化(有一部分的磁盘空间在数据删除以后(空),还是无法被操作系统所使用。)

  常见的优化:

  # alter table xxx engine myisam;

  # optimize table t1;

  注意: 在实际开发的过程中,上面两个语句尽量少使用,因为在使用的过程中,MySQL的表的结构会整体全部重新整理,需要消耗很多的资源,建议在凌晨两三点钟的时候执行。(在linux下有定时器脚本可以执行,crontab)


数据库系统相关文章:

1.sql数据库的操作

2.oracle数据库基础使用方法

3.sql数据库的单表查询

4.数据库as的用法

5.服务器对大数据的作用和影响

4015219