zabbix使用iostat命令参数监控磁盘性能
iostat命令
先说一个坑把,在开始监控的时候使用命令
iostat -dtkx,得到的结果看上去没问题,但是在web监控窗口数据就说不变动,为啥呢,因为iostat这个命令得到的第一个数据始终是磁盘从系统启动到现在的相关数值,这样如果系统很一直很平稳,得到的数值就不会有变化,除非一直很平稳,突然对磁盘的请求陡增,数值会改变。也就是iostat取得第一次数据并不是我们想要监控得数据;所以在监控脚本中需要使用iostat -dtkx 1 2每秒钟取两次数据,用第二次得数据来进行磁盘性能监控
相关参数解释
- rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同的Block的数据,FS会将这个请求合并Merge)
- wrqm/s:每秒这个设备相关的写入请求有多少被Merge了
- r/s:每秒完成的读次数
- w/s:每秒完成的写次数
- rKB/s:每秒读数据量(kb为单位)
- wKB/s:每秒写数据量
- avgrq-sz:平均请求扇区的大小
- avgqu-sz:是平均请求队列的长度,毫无疑问,队列长度越短越好
- await:每一个IO请求处理的平均时间(单位是毫秒),这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。这个时间包括了队列时间和服务时间,也就是说,一般这种情况下,await大于svctm,它们的差值越小,则说明队列时间越短,反之差值越在,队列时间越长,说明系统出了问题
- svctm:表示平均每次设备I/O操作的服务时间(以毫秒为单位),如果svctm的值与await很接近,表示几乎没有I/O在等待,磁盘性能很好,如果await的值远高于svctm的值,则表示I/O队列等待太长,系统上运行的应用程序将变慢
- %util:在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒处理IO,而0.2秒闲置,那么该设备的%util=0.8/1=80%,所以该参数暗示了设备的繁忙程度。一般地,如果该参数是100%表示已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必到了瓶颈)
@ 监控脚本
#/bin/sh
Device=$1
DISK=$2
case $DISK in
rrqm)
iostat -dxkt 1 2 grep "\b$Device\b"|tail -1|awk '{print $2}'
;;
wrqm)
iostat -dxkt 1 2 |grep "\b$Device\b"|tail -1|awk '{print $3}'
;;
rps)
iostat -dxkt 1 2 |grep "\b$Device\b"|tail -1|awk '{print $4}'
;;
wps)
iostat -dxkt 1 2 |grep "\b$Device\b" |tail -1|awk '{print $5}'
;;
rKBps)
iostat -dxkt 1 2 |grep "\b$Device\b" |tail -1|awk '{print $6}'
;;
wKBps)
iostat -dxkt 1 2 |grep "\b$Device\b" |tail -1|awk '{print $7}'
;;
avgrq-sz)
iostat -dxkt 1 2 |grep "\b$Device\b" |tail -1|awk '{print $8}'
;;
avgqu-sz)
iostat -dxkt 1 2 |grep "\b$Device\b" |tail -1|awk '{print $9}'
;;
await)
iostat -dxkt 1 2 |grep "\b$Device\b" |tail -1|awk '{print $10}'
;;
svctm)
iostat -dxkt 1 2 |grep "\b$Device\b" |tail -1|awk '{print $11}'
;;
util)
iostat -dxkt 1 2 |grep "\b$Device\b" |tail -1|awk '{print $12}'
;;
esac
脚本中得$Device代表你要监控得磁盘名,在配置zabbix_agent中,我直接写成了vda,如果还有其他磁盘,就需要配置两条UserParameter将传进去得vda改为其他磁盘就可以
@ 配置zabbix_agent
添加
UserParameter=disk.io[*],/usr/local/zabbix/sh/chk_io.sh vda $1
vda对应脚本中的Device, $1对应脚本中的DISK
@ 配置web监控项
例如: 磁盘每秒读数据量
对用脚本中rKBps项,键值为disk.io[rKBps]
要注意的是信息类型一定要选对,这里应该选择浮点型,不然会读取不到数据报错,默认为整数型
zabbix使用iostat命令参数监控磁盘性能的更多相关文章
- zabbix的日常监控-磁盘性能监控(十二)
监控磁盘的性能 参考文章: https://wiki.enchtex.info/howto/zabbix/zabbix_iostat_monitoring https://blog.csdn.net/ ...
- 对zabbix监控磁盘性能的补充
原因 在上一篇文章中,我写了完整的磁盘监控步骤,希望对大家有所帮助.但是这里还需要作出一点补充. 根据上一篇文章的内容,我是使用iostat命令不停的收集磁盘的信息,然后写入到/tmp/iostat_ ...
- iostat命令详解 IO性能分析
简介 iostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息.用户可以通过指定统计的次数和时间 ...
- linux iostat命令详解 磁盘操作监控工具
Linux系统中的 iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视. 它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况. ...
- zabbix应用之Low-level discovery监控磁盘IO
参考文章: http://qicheng0211.blog.51cto.com/3958621/1599776/ zabbix自带的"Template OS Linux"模板支持监 ...
- zabbix利用自带模板-监控mysql性能
环境: zabbix3.4.4 mariadb 5.5.56 要求: 利用zabbix 自带的模板 监控mariadb 上的 并发连接数,慢查询数量,增删改查.请求流量带宽,mysql响应流量带宽等 ...
- iostat命令具体解释——linux性能分析
之前总结uptime和free命令,今天继续来总结一下iostat.给自己留个笔记.同一时候也希望对大家实用. 版本号信息: sysstat version 9.0.4 (C) S ...
- 讨论一下TaskManager中监控磁盘性能的一些小问题
今天研究了一下命令"diskperf -Y". 我把发现Share给了同事, 原文写在了下面, 就不翻译了. ^_^ Try this command (CMD or Powe ...
- zabbix实现对磁盘性能动态监控
前言 zabbix一直是小规模互联网公司服务器性能监控首选,首先是免费,其次,有专门的公司和社区开发维护,使其稳定性和功能都在不断地增强和完善.zabbix拥有详细的UI界面和分组策略,在被监控的服务 ...
随机推荐
- java面试题之----get和post请求方法的区别
GET和POST两种基本请求方法的区别 GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过req ...
- 关于Cookie 的HttpOnly属性(java/web操作cookie+Tomcat操作jsessionid)
关于Cookie的其它只是不在累述.本文主要讲讲自己在项目中遇到的cookie的HttpOnly属性问题 Cookie的HttpOnly属性说明 cookie的两个新的属性secure和Httponl ...
- 了解git /github
一 GIT是什么? Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.Git ...
- Android(java)学习笔记49:通过反射获取私有构造方法并且使用
1. 反射获取私有构造方法并且使用: (1)获取字节码文件.class对象: Class c = Class.forName("cn.itcast_01.Person&qu ...
- python:类与对象命名空间、面对对象的组合用法
1,类里可以定义两种属性: #静态属性 #静态属性就是直接在类中定义的变量 #动态属性 #动态属性就是定义在类中的方法 class Course: language = ['Chinese']#静态属 ...
- 课堂笔记-------字符串类型string------练习
字符串类型 一.string //打出s.时就会出现一堆的方框,要找不带箭头的(不带箭头的是我们现在可以用的到的),不要找带箭头的(带箭头的是扩展,现在还用不到) //不带箭头的都是对s的操作(动作和 ...
- POJ 2365【YY水题】
题目链接:POJ 2365 Rope Rope Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7488 Accepted ...
- Gulp 方法
Gulp有5个基本方法:src.dest.task.run.watch Gulp.src() gulp模块的src方法,用于产生数据流.它的参数表示索要处理的文件,一般有以下几种形式: js ...
- Ubuntu 16.04 源码方式安装 JDK
1.去官网下载JDK http://www.oracle.com/technetwork/articles/javase/index-jsp-138363.html 2.下载完成后,创建一个我们将要安 ...
- Git使用(一)
声明: 第一次使用git,只能保证我的方法可以用,肯定不是最简最好的.以后需要用到更多的用法的时候再来这里更新. 说实话,记下来主要是因为自己记性不好,各种配置记不住,都是当备忘录用的,(囧囧囧囧囧) ...