iostat可以提供丰富的IO状态数据
简述
Linux系统中通过iostat我们能查看到系统IO状态信息,从而确定IO性能是否存在瓶颈;
命令安装
yum install -y sysstat
命令使用
#iostat --help
[root@localhost ~]# iostat --help Usage: iostat [ options ] [ <interval> [ <count> ] ] 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 ] ]
iostat主要有三个操作箱,options操作项,interval指定统计时间间隔,count总共数次数;
-c 可以用看查看部分cpu状态信息;
-k 某些使用block为单位的列强制使用Kilobytes为单位;iostat -k 1 10 每秒输出一次,总共输出10次;
-d 显示设备(磁盘)使用状态,例:iostat -d 1 3 每秒输出一次,总共输出3次;
tps:该设备每秒的传输次数,一次传输是一次I/O请求。多个逻辑请求可能会被合并为一次I/O请求。一次传输请求的大小是未知的;
KB_read/s:每秒从设备读取的数据量;
kb_wrtn/s:每秒像设备写入的数据量;
kb_read:读取的总数据量;
kb_wrtn:写入的总数据量;
因为是瞬间值,总TPS并不严格等于各个分区TPS的总和;
-x 输出更多详细信息,例:iostat -x 1 2;
rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求请求合并Merge;发到各个FS,如果FS发现不同的读取请求读取的是相同的block的数据,FS会将这个);
wrqm/s:每秒这个设备相关的写入请求有多少被Merge了;
rsec/s:每秒读取的扇区数;
wse;c/s:每秒写入的扇区数;
r/s:每秒的读请求;
w/s:每秒的写请求;
await:每一个IO请求的处理的平均时间(单位是毫秒),这里可以理解为IO的响应时间,一般系统响应时间低于5ms,如果大于10ms就比较大了;
%util:在统计时间内所有处理IO的时间除以总共统计的时间。例如统计间隔1s,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 80%,所以该参数暗示了设备的繁忙程度。如果知道是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘的使用未必就到了瓶颈。
常见用法:
iostat -d -k 1 10
iostat -d -x -k 1 10
iostat -c 1 10
实例:
iostat -d -d 1 1 查看指定磁盘吞吐量和速率;
iostat -x -k 1 1 磁盘性能统计;