Linux备忘录:iostat命令
Linux系统中的iostat
是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。iostat属于sysstat软件包。可以用yum install sysstat
直接安装。
命令格式:
iostat [ -c ] [ -d ] [ -h ] [ -N ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -z ] [ device [...] | ALL ] [ -p [ device [,...] | ALL ] ] [ interval [ count ] ]
命令含义:
通过iostat方便查看CPU、网卡、tty设备、磁盘、CD-ROM 等等设备的活动情况,负载信息。tps
该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device.)。”一次传输”意思是”一次I/O请求”。多个逻辑请求可能会被合并为”一次I/O请求”。”一次传输”请求的大小是未知的。kB_read/s
每秒从设备(drive expressed)读取的数据量;kB_wrtn/s
每秒向设备(drive expressed)写入的数据量;kB_read
读取的总数据量;kB_wrtn
写入的总数量数据量;这些单位都为Kilobytes。rrqm/s
每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge);wrqm/s:每秒这个设备相关的写入请求有多少被Merge了。rsec/s
每秒读取的扇区数;wsec/s
每秒写入的扇区数。rKB/s
The number of read requests that were issued to the device per second;wKB/s
The number of write requests that were issued to the device per second;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%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。
命令参数:
-C 显示CPU使用情况
-d 显示磁盘使用情况
-k 以 KB 为单位显示
-m 以 MB 为单位显示
-N 显示磁盘阵列(LVM) 信息
-n 显示NFS 使用情况
-p [磁盘] 显示磁盘和分区的情况
-t 显示终端和CPU的信息
-x 显示详细信息
-V 显示版本信息使用方法:
iostat -dk 1 10 #查看TPS和吞吐量信息(磁盘读写速度单位为KB), 1秒刷新,总共10次 iostat -dm 2 #查看TPS和吞吐量信息(磁盘读写速度单位为MB),2秒刷新 iostat -dxk 1 10 #查看设备使用率(%util)、响应时间(await) iostat -c 1 10 #查看cpu状态
参考:
http://www.cnblogs.com/peida/archive/2012/12/28/2837345.html
- 系统IO高的排查方法:
top 指令发现 CPU %wa
占比较高,说明CPU Wait IO时间较长;load average(等待使用CPU的进程队列)大于CPU核心数说明IO存在IO排队的情况。
iostat 查看IO负载使用情况,%util
表示磁盘使用负载,当%util
>70%,说明IO压力较大了。
iostat -x 1 10
确定IO存在瓶颈时,使用pidstat
指令查看所有进程使用IO的统计值
# 命令的含义:展示进程读写I/O统计值,每秒更新一次
pidstat -d 1
确定IO进程后,lsof(可能需要安装)定位指定进程正在读写的文件:
lsof -p [PID]
其他:
通过iotop
命令查看(如果没有这个指令,通过yum install iotop
安装)
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 using1174@foxmail.com
文章标题: Linux备忘录:iostat命令
文章字数: 1,204
本文作者: Jun
发布时间: 2018-07-23, 12:09:00
最后更新: 2022-09-30, 15:01:35
原始链接: http://yoursite.com/2018/07/23/Linux备忘录:iostat命令/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。