iostat命令详解&指标分析

Iostat

iostat命令用于监视系统CPU和I/O设备负载

常用方法: iostat -x 1 12   检测系统的io状态,每一秒刷新一次,一共刷新12次

-x该选项显示和io相关的扩展数据

还可以使用-k或者-m选项以按照kb或MB显示单位

不足之处:iostat输出结果大多数是一段时间内的平均值,因此只能对系统整体情况进行分析,难以反应峰值情况,不能针对某个进程进行深入分析

查询结果含义: 

avg-cpu段           

%user显示用户级(应用程序)执行产生的cpu使用率百分比(理论上一个良好的系统cpu处于user模式下的时间小于60%为优(参考)如果高于70%,可以考虑对应用程序进行优化)

%nice:

Cpu处在nice值的用户模式下的时间百分比

Nice值:是linux系统中反应进程优先级的一个指数,范围是-20到19,默认是0,最高是-20,最低是+19,通过nice命令可以得到,nice的英文含义是友好的意思,意思就是级别越大,越友好,就会让给其他进程越多的cpu处理时间,可以通过nice -n 10 bash来打开一个nice值为10的bash(bash可由其他conmand替代)

%system显示系统(内核)执行产生的cpu使用率百分比

%user+%sys<80%,Sys%>30%时,观察是否有过多的中断或上下文切换(上下文切换参考:Linux CPU性能指标浅析-社区博客-网易数帆

%steal:是衡量虚拟机CPU的指标,是指分配给本虚拟机的时间片被同一宿主机的其他的虚拟机使用,一般%steal值较高时,说明宿主机的资源使用已到达瓶颈

%idle:Cpu空闲时间百分比(100%)为完全空闲,

%idle高但系统响应慢,说明cpu在等待分配内存,此时应增加内存容量,idle%过低持续小于10%则说明需要加强cpu

Deivce段:

监测设备的名称

rrqm/s:每秒合并的读操作次数

wrqm/s:每秒合并的写操作次数,即wmerege/s

r/s:每秒完成的读I/O设备次数

w/s:每秒完成的写I/O设备次数

rkb/s:每秒读K字节数

rkb/s

wkb/s

avgrq-sz

avgqu-sz

await

r_await

w_await

svctm

util%

每秒读K字节数

每秒写K字节数

平均每次设备I/O操作的数据大小(扇区)

平均I/O队列长度

平均每次I/O操作的等待时间(毫秒)

每个读操作平均所需时间

每个写操作平均所需时间

平均每次I/O设备的操作服务时间

一秒中有多少%的时间用于IO操作

rrqm/s:每秒合并读操作次数(当系统需要读取数据的时候,VFS(virtual File System)将请求分发到各个FS,如果FS发现不同的读请求读取的是相同block的数据,FS会将这个数据merge(合并),即rmerge/s

r/s|w/s:即delta(rio)/s|delta(wio)/s

rkb/s|wkb/s:是rsect/s|wsect/s的一半,因为每扇区大小为512字节(需要计算)

rsect/s:每秒读扇区数,即delta(rsect)/s

avgrq-sz=delta(rsect+wsect)/delta(rio+wio),平均每次设备I/O操作的数据大小,单位是扇区,每个请求平均大小,在压测时,这个值在200-400之间算是比较理想的状态,如果这个值比较小,说明太多的I/O请求没有被合并,或者大的I/O请求被打散,在写操作时,过多小的请求会造成磁盘磁头的频繁移动,降低I/O性能

avgqu-sz:平均请求队列长度,delta(aveq)/s/1000,这个值在正常的系统中不应该超过113太多,如果到达了200左右,甚至上千,则说明发生了IO拥塞,而系统还在往I/O队列中放请求(有一个列外是在执行sync,fsync操作时,该值到达最大值8192是正常的),这个值越低越好。

r_await/w_await:不仅包括硬盘读/写操作的时间,还包括了在kernel中等待的时间

如果await远大于svctm,说明I/O队列太长,得到的响应时间变慢,avgqu-sz值过大,也说明,I/O队列过长,可能存在硬盘瓶颈(await包括等待时间和服务时间)

如果%util值接近100%,则表示设备可能已经满负荷运行了,注意:如果是多硬盘,即使%util值是100%,因为磁盘的并发能力,所以磁盘的使用未必就到达了瓶颈。

吞吐量计算方式=rkb/s+wkb/s:顺序读写频繁的应用,传输大量连续数据,如电视台的视频编辑,视频点播VOD,关注连续读写性能,数据吞吐量是关键衡量指标

IOPS计算方式=r/s+w/s,即I/O per second,即每秒钟处理的I/O个数,IOPS是随机读写性能的关键衡量指标

Iostat命令有时不能准确的判断系统瓶颈的问题所在,可以结合top,sar等命令再进行判断。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值