Iostat

来自linux中国网wiki
跳到导航 跳到搜索

iostat

NAME and DESCRIPTION

Linux系统中的 iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。

SYNOPSIS

       iostat [ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -s ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ] [ -j
       {  ID | LABEL | PATH | UUID | ... } ] [ -o JSON ] [ [ -H ] -g group_name ] [ --human ] [ -p [
       device [,...] | ALL ] ] [ device [...] | ALL ] [ interval [ count ] ]

OPTIONS

-C  显示CPU使用情况  Display the CPU utilization report.
-d 显示磁盘使用情况  Display the device utilization report.
-k 以 KB 为单位显示
-m 以 M 为单位显示
-N 显示磁盘阵列(LVM) 信息
-n 显示NFS 使用情况
-p[磁盘] 显示磁盘和分区的情况
-t 显示终端和CPU的信息
-x 显示详细信息
-x device
-V 显示版本信息   
 intervals 间隔时间  
 

EXAMPLES

eg1 cpu
iostat -c 

eg2 
iostat -d 5  2
Linux 2.6 	2017年09月14日 	_x86_64_	(8 CPU)

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
vda               2.01        12.89        77.13    2998804   17948680
vdb              21.09        57.76       660.94   13439490  153798072

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
vda               1.60         0.00        22.40          0        112
vdb               7.60         0.00       688.00          0       3440

说明:
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。

上面的例子中,我们可以看到磁盘sda来说 以及它的各个分区的统计数据,当时统计的磁盘总TPS是2.01,下面是各个分区的TPS。(因为是瞬间值,所以总TPS并不严格等于各个分区TPS的总和)

eg3 
iostat -d -x -k 1 1 #相似与 sar -d 

	2017年09月14日 	_x86_64_	(8 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.01     7.89    0.27    1.74     6.44    38.55    44.73     0.02   11.47    5.63   12.38   2.19   0.44
vdb               0.00    62.12    0.60   20.49    28.86   330.51    34.08     0.20    9.39    4.20    9.55   0.32   0.68

参数 -d 表示,显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;1表示,数据显示每隔1秒刷新一次。
rrqm/s:  每秒进行 merge 的读操作数目.即 delta(rmerge)/s
wrqm/s: 每秒进行 merge 的写操作数目.即 delta(wmerge)/s
r/s:  每秒完成的读 I/O 设备次数.即 delta(rio)/s
w/s:  每秒完成的写 I/O 设备次数.即 delta(wio)/s
rsec/s:  每秒读扇区数.即 delta(rsect)/s
wsec/s: 每秒写扇区数.即 delta(wsect)/s

常见用法
iostat -d -k 1 10         #查看TPS和吞吐量信息(磁盘读写速度单位为KB)
iostat -d -m 2            #查看TPS和吞吐量信息(磁盘读写速度单位为MB)
iostat -d -x -k 1 10      #查看设备使用率(%util)、响应时间(await) iostat -c 1 10 #查看cpu状态

参考

每天一个linux命令(47):iostat命令

Linux IO实时监控iostat命令详解

Iotop