linux中利用rrdtool为vmstat输出绘图

1、查看vmstat的输出

[root@361way ~]# vmstat 1 2
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 1479452 420588 5600548    0    0     0     3    0    5  0  0 100  0  0
 0  0      0 1479444 420588 5600548    0    0     0     0   40   37  0  0 100  0  0

2、为vmstat的输出结果建表

rrdtool create vmstat.rrd --step 1  \
DS:r:GAUGE:5:U:U \
DS:b:GAUGE:5:U:U \
DS:swpd:GAUGE:5:U:U \
DS:free:GAUGE:5:U:U \
DS:buff:GAUGE:5:U:U \
DS:cache:GAUGE:5:U:U \
DS:si:GAUGE:5:U:U \
DS:so:GAUGE:5:U:U \
DS:bi:GAUGE:5:U:U \
DS:bo:GAUGE:5:U:U \
DS:in:GAUGE:5:U:U \
DS:cs:GAUGE:5:U:U \
DS:us:GAUGE:5:U:U \
DS:sy:GAUGE:5:U:U \
DS:id:GAUGE:5:U:U \
DS:wa:GAUGE:5:U:U \
DS:st:GAUGE:5:U:U \
RRA:AVERAGE:0.5:1:100000

DS:r:GAUGE:5:U:U 中的5表示两次更新最大心跳时间秒数。第一个U表示最小值,第二个U表示最大值,使用U(ulimit)表示值不限制。

3、将vmstat的输出各项值都存入vmstat.rrd文件中

vmstat 1 600 | awk -v time=`date +%s` '/^.[0-9]/{ n++; print "rrdtool update vmstat.rrd "time+n":" $1 ":" $2 ":" $3 ":" $4 ":" $5 ":" $6 ":" $7 ":" $8 ":" $9 ":" $10 ":" $11 ":" $12 ":" $13 ":" $14 ":" $15 ":" $16 ":" $17 }' >vmstat.output
bash <./vmstat.output
收集最近10分钟的数据并将其导到的vmstat.rrd 库文件中。

4、利用rrdtool graph汇图

rrdtool自带有汇图参数,可以利用rrdtool graph为刚刚输入的数据绘图

#图1
rrdtool graph physical_consumed.gif \
--title "Physical CPU Consumed" \
--vertical-label "CPUs" \
--height 300 \
--start 1422606034 \
--end 1422606333 \
DEF:st=vmstat.rrd:st:AVERAGE LINE2:st#00FF00:"Physical Consumed"
#图2
rrdtool graph cpu_util.gif \
--rigid --lower-limit 0 --upper-limit 100 \
--title "CPU Util" \
--vertical-label "Percent Stacked" \
--start 1422606034 \
--end 1422606333 \
--height 300 \
DEF:us=vmstat.rrd:us:AVERAGE AREA:us#00FF00:"User" \
DEF:sy=vmstat.rrd:sy:AVERAGE STACK:sy#0000FF:"System" \
DEF:wa=vmstat.rrd:wa:AVERAGE STACK:wa#FF0000:"Wait" \
DEF:id=vmstat.rrd:id:AVERAGE STACK:id#FFFFFF:"Idle"
注:

1、上需的start和end时间,可以从vmstat.output文件中的第四列的值中获取;

2、lower-limit和upper-limit为cpu_util 图表的纵坐标指定了上下限。

生成的效果图如下:

5、完整的脚本如下

#!/bin/bash
rrdtool create vmstat.rrd --step 1  \
DS:r:GAUGE:5:U:U \
DS:b:GAUGE:5:U:U \
DS:swpd:GAUGE:5:U:U \
DS:free:GAUGE:5:U:U \
DS:buff:GAUGE:5:U:U \
DS:cache:GAUGE:5:U:U \
DS:si:GAUGE:5:U:U \
DS:so:GAUGE:5:U:U \
DS:bi:GAUGE:5:U:U \
DS:bo:GAUGE:5:U:U \
DS:in:GAUGE:5:U:U \
DS:cs:GAUGE:5:U:U \
DS:us:GAUGE:5:U:U \
DS:sy:GAUGE:5:U:U \
DS:id:GAUGE:5:U:U \
DS:wa:GAUGE:5:U:U \
DS:st:GAUGE:5:U:U \
RRA:AVERAGE:0.5:1:100000
$TIME=`date +%s`
vmstat 1 600 | awk -v time=$TIME '/^.[0-9]/{ n++; print "rrdtool update vmstat.rrd "time+n":" $1 ":" $2 ":" $3 ":" $4 ":" $5 ":" $6 ":" $7 ":" $8 ":" $9 ":" $10 ":" $11 ":" $12 ":" $13 ":" $14 ":" $15 ":" $16 ":" $17 }' >vmstat.output
$ENDTIME=`date +%s`
bash <./vmstat.output
rrdtool graph physical_consumed.gif \
--title "Physical CPU Consumed" \
--vertical-label "CPUs" \
--height 300 \
--start $TIME \
--end $ENDTIME \
DEF:st=vmstat.rrd:st:AVERAGE LINE2:st#00FF00:"Physical Consumed"
rrdtool graph cpu_util.gif \
--rigid --lower-limit 0 --upper-limit 100 \
--title "CPU Util" \
--vertical-label "Percent Stacked" \
--start $TIME \
--end $ENDTIME \
--height 300 \
DEF:us=vmstat.rrd:us:AVERAGE AREA:us#00FF00:"User" \
DEF:sy=vmstat.rrd:sy:AVERAGE STACK:sy#0000FF:"System" \
DEF:wa=vmstat.rrd:wa:AVERAGE STACK:wa#FF0000:"Wait" \
DEF:id=vmstat.rrd:id:AVERAGE STACK:id#FFFFFF:"Idle"

时间: 2024-08-01 19:45:08

linux中利用rrdtool为vmstat输出绘图的相关文章

Linux中利用两个现存文件,生成一个新的文件

Linux中利用两个现存文件,生成一个新的文件的方法 前提条件:每个文件中不得有重复行 1. 取出两个文件的并集(重复的行只保留一份) cat file1 file2 | sort | uniq 2. 取出两个文件的交集(只留下同时存在于两个文件中的文件) cat file1 file2 | sort | uniq -d 3. 删除交集,留下其他的行 cat file1 file2 | sort | uniq –u

服务器-请问如何在linux中利用springmv提供一个树结构的数据

问题描述 请问如何在linux中利用springmv提供一个树结构的数据 利用该数据完成一个jquery树插件,要求树的数据在服务器端提供缓存功能!

Linux中利用Procmail来反击垃圾邮件

电子邮件是互联网上最重要的通讯手段和工具.从电子邮件诞生的那天起,无聊的垃圾邮件就成为了人们最头疼的问题之一.据说,世界上每年由于垃圾电子邮件给人们带来的损失就高达数亿美元.在Windows操作系统中也许您已经尝够了垃圾邮件给您带来的苦头,让您防不胜防.但是,不要以为在Linux操作系统平台中就能避免垃圾电子邮件给我们带来的骚扰,反击和过虑掉我们不需要的电子邮件就是一件很重要的工作.本文将详细介绍如何利用procmail来对付垃圾邮件. 无用的电子邮件通常会影响我们的网络生活.在Linux操作系

如何在LINUX中利用wu-ftp架设一台FTP服务器

FTP服务可以根据服务对象的不同分为两类:一类是系统FTP服务器,它只允许系统上的合法http://www.aliyun.com/zixun/aggregation/6579.html">用户使用: 另一类是匿名FTP服务器,Anonymous FTP Server,它使用任何人都可以登录到FTP服务器上去获取文件.下面,小编就给大家介绍一下如何在LINUX系统中利用wu-ftp架设一台FTP服务器. 一.选择和安装FTP服务器软件 如果你在安装LINUX系统的时候,在选择启动进程的时候选

linux中利用vmstat和iostat命令查看linux的性能

vmstat和iostat是linux重要的两个的性能监控工具. vmstat - 内存,进程和分页等的简要信息 procs r 表示多少进程正在等待cpu b 表示多少进程正在不可中断地休眠(通常意味正在等待I/O如磁盘.网络.用户输入等) memory swpd 多少块被换出到磁盘 free 多少块是空闲的 buff 多少块正在被用作缓冲 cache 多少块正在被用作操作系统的缓存 swap(页面交换活动) si 多少块正在从磁盘换入 so 多少块正在换出到磁盘 io bi 多少块从块磁盘设

linux中利用UnixBench进行性能测试

 UnixBench是一款开源的测试 unix 系统基本性能的工具,是比较通用的测试VPS性能的工具. UnixBench会执行一系列的测试,包括2D和3D图形系统的性能衡量,测试的结果不仅仅只是CPU,内存,或者磁盘为基准,还取决于硬件,操作系统版本,编译器.   性能测试-unixbench"> UnixBench是一个类unix系(Unix,BSD,Linux)统下的性能测试工具,一个开源工具,被广泛用与测试linux系统主机的性能.Unixbench的主要测试项目有:系统调用.读写

Linux中利用Rsync+Inotify-tools实现数据实时同步备份

说明: 操作系统:CentOS 5.X 源服务器:192.168.21.129 目标服务器:192.168.21.127,192.168.21.128 目的:把源服务器上/home/www.111cn.net目录实时同步到目标服务器的/home/www.111cn.net下 具体操作: 第一部分:分别在两台目标服务器192.168.21.127,192.168.21.128上操作 一.分别在两台在目标服务器安装Rsync服务端 1.关闭SELINUX vi /etc/selinux/config

在Linux中利用yum安装JDK的实现步骤_unix linux

一.卸载centos自带的jdk 1.查看当前的jdk版本,并卸载 root@localhost opt]# rpm -qa|grep java java-1.6.0-openjdk-1.6.0.37-1.13.9.4.el5_11 tzdata-java-2015g-1.el5 //卸载 [root@localhost opt]# rpm -e --allmatches --nodeps java-1.6.0-openjdk-1.6.0.37-1.13.9.4.el5_11 [root@loc

Linux中利用SRP(安全远程密码)架设FTP服务器

一.SRP简介 SRP全称:Secure Remote PassWord(安全远程密码),它是一个开放源代码认证协议.使用SRP的客户机/服务器不会在网络上以明文或加密的方式传送密码,这样可以完全消除密码欺骗行为.保证口令可以安全地在网络上面传送.基本的思想是,防止有被动或主动网络入侵者使用字典攻击.Standford大学计算机系开发了SRP软件包,提供基于口令认证和会话加密的安全机制,而不需要用户或者是网管参与密钥的治理或分发.SRP为每一个人提供透明的http://www.aliyun.co