linuxiostat查看磁盘io利用率
Posted sysu_lluozh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linuxiostat查看磁盘io利用率相关的知识,希望对你有一定的参考价值。
一、概述
- 作用
iostat是I/O statistics(输入/输出统计)的缩写,主要对系统的磁盘操作活动进行监视
iostat的特点是汇报磁盘活动及CPU使用情况,输出磁盘IO和CPU的统计信息
- 劣势
iostat有一个弱点,即并不能对某个进程进行深入分析,仅对系统的整体情况进行分析
二、安装
iostat属于sysstat软件包,安装iostat的命令:
yum install -y sysstat
三、语法
iostat --h
3.1 用法
iostat [ 选项 ] [ <时间间隔> [ <次数> ] ]
Options are:
[ -c ] [ -d ] [ -N ] [ -n ] [ -h ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ]
[ -j ID | LABEL | PATH | UUID | ... [ <device> [...] | ALL ] ]
[ <device> [...] | ALL ] [ -p [ <device> [,...] | ALL ] ]
3.2 语法
iostat(选项)(参数)
- 选项
-c:显示CPU使用情况
-d:显示磁盘使用情况
-N:显示磁盘阵列(LVM)信息
-n:显示NFS 使用情况
-k:以 KB 为单位显示
-m:以 M 为单位显示
-t:显示每个报告产生时的时间
-p:显示磁盘和分区的情况
-V:显示版号并退出
-x:显示扩展状态
- 参数
间隔时间:每次报告的间隔时间(秒)
次数:显示报告的次数
四、示例
4.1 iostat
cpu属性值说明:
- %user:CPU处在用户模式下的时间百分比
- %nice:CPU处在带NICE值的用户模式下的时间百分比
- %system:CPU处在系统模式下的时间百分比
- %iowait:CPU等待输入输出完成时间的百分比
- %steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比
- %idle:CPU空闲时间百分比
备注:
- 如果%iowait的值过高,表示硬盘存在I/O瓶颈
- 如果%idle值高,表示CPU较空闲
- 如果%idle值高但系统响应慢时,可能是CPU等待分配内存,应加大内存容量
- 如果%idle值持续低于10,表明CPU处理能力相对较低,系统中最需要解决的资源是CPU
disk属性值说明:
- device:磁盘名称
- tps:每秒钟发送到的I/O请求数
- kB_read/s:每秒读取的block数
- kB_wrtn/s:每秒写入的block数
- kB_read:读入的block总数
- kB_wrtn:写入的block总数
4.2 间隔刷新
iostat 1 5
间隔1秒,总共显示5次
4.3 指定磁盘信息
显示指定磁盘信息
iostat -d /dev/sda
iostat -d sda
4.4 使用率&响应时间
查看设备使用率(%util)、响应时间(await)
iostat -d -x -k 1 1
- rrqm/s:每秒进行merge读操作的数量
- wrqm/s:每秒进行merge写操作的数量
- r/s:每秒完成读I/O设备的次数
- w/s:每秒完成写I/O设备的次数
- rkB/s:每秒读K字节数
- wkB/s:每秒写K字节数
- avgrq-sz:平均每次设备I/O操作的数据大小(扇区)
- avgqu-sz:平均I/O队列长度
- await:平均每次设备I/O操作的等待时间(毫秒)
- r_await:每个读操作平均所需的时间
不仅包括硬盘设备读操作的时间,还包括了在kernel队列中等待的时间。 - w_await:每个写操作平均所需的时间
不仅包括硬盘设备写操作的时间,还包括了在kernel队列中等待的时间 - svctm: 平均每次设备I/O操作的服务时间(毫秒)
- %util:一秒中有百分之多少的时间用于I/O操作
备注:
- 如果%util接近100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈
- 如果idle小于70%时,IO压力就较大,一般读取速度有较多的wait
4.5 查看cpu状态
查看cpu状态,间隔1秒显示一次,总共显示2次
iostat -c 1 2
以上是关于linuxiostat查看磁盘io利用率的主要内容,如果未能解决你的问题,请参考以下文章
Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题