博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用iostat分析IO性能
阅读量:7117 次
发布时间:2019-06-28

本文共 4950 字,大约阅读时间需要 16 分钟。

使用iostat分析IO性能

iostat用于输出CPU和磁盘I/O相关的统计信息.

1.不加选项执行iostat

[patrickxu@vm1 ~]$ iostat

Linux 2.6.32-279.19.3.el6.ucloud.x86_64 (vm1)   06/11/2017  _x86_64_    (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle

           0.08    0.00    0.06    0.00    0.00   99.86

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

vda               0.45         0.29         8.10    6634946  183036680
vdb               0.12         3.11        30.55   70342034  689955328

单独执行iostat,显示的结果为从系统开机到当前执行时刻的统计信息。

以上输出中,包含三部分:

选项

说明

第一行

最上面指示系统版本、主机名和当前日期

avg-cpu

总体cpu使用情况统计信息,对于多核cpu,这里为所有cpu的平均值

Device

各磁盘设备的IO统计信息

Device中各列参数含义如下:

选项

说明

%user

CPU在用户态执行进程的时间百分比。

%nice

CPU在用户态模式下,用于nice操作,所占用CPU总时间的百分比

%system

CPU处在内核态执行进程的时间百分比

%iowait

CPU用于等待I/O操作占用CPU总时间的百分比

%steal

管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟CPU的百分比

%idle

CPU空闲时间百分比

1. 若 %iowait 的值过高,表示硬盘存在I/O瓶颈

2. 若 %idle 的值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量

3. 若 %idle 的值持续低于1,则系统的CPU处理能力相对较低,表明系统中最需要解决的资源是 CPU

avg-cpu中各列参数含义如下:

选项

说明

Device

设备名称

tps

每秒向磁盘设备请求数据的次数,包括读、写请求,为rtps与wtps的和。出于效率考虑,每一次IO下发后并不是立即处理请求,而是将请求合并(merge),这里tps指请求合并后的请求计数。

Blk_read/s

Indicate the amount of data read from the device expressed in a number of blocks per second. Blocks are equivalent to sectors with kernels 2.4 and later and therefore have a size of 512 bytes. With older kernels, a block is of indeterminate size.

Blk_wrtn/s

Indicate the amount of data written to the device expressed in a number of blocks per second.

Blk_read

取样时间间隔内读扇区总数量

Blk_wrtn

取样时间间隔内写扇区总数量

我们可以使用-c选项单独显示avg-cpu部分的结果,使用-d选项单独显示Device部分的信息。

2.指定采样时间间隔与采样次数

与sar命令一样,我们可以以”iostat interval [count] ”形式指定iostat命令的采样间隔和采样次数:

[patrickxu@vm1 ~]$ iostat -d 2 3

Linux 2.6.32-279.19.3.el6.ucloud.x86_64 (vm1)   06/12/2017  _x86_64_    (8 CPU)

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

vda               0.45         0.29         8.10    6634946  183051408
vdb               0.12         3.11        30.55   70342034  689955328

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

vda               0.00         0.00         0.00          0          0
vdb               0.00         0.00         0.00          0          0

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

vda               1.50         0.00        12.00          0         24
vdb               0.00         0.00         0.00          0          0

以上命令输出Device的信息,采样时间为1秒,采样2次,若不指定采样次数,则iostat会一直输出采样信息,直到按”ctrl+c”退出命令。注意,第1次采样信息与单独执行iostat的效果一样,为从系统开机到当前执行时刻的统计信息。

3.以kB为单位显示读写信息(-k选项)/以mB为单位显示读写信息(-m选项)

我们可以使用-k选项,指定iostat的部分输出结果以kB为单位,而不是以扇区数为单位:

[patrickxu@vm1 ~]$ iostat -d -k

Linux 2.6.32-279.19.3.el6.ucloud.x86_64 (vm1)   06/12/2017  _x86_64_    (8 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn

vda               0.45         0.15         4.05    3317473   91525980
vdb               0.12         1.56        15.27   35171017  344977664

 

以上输出中,kB_read/s、kB_wrtn/s、kB_read和kB_wrtn的值均以kB为单位,相比以扇区数为单位,这里的值为原值的一半(1kB=512bytes*2)

4.更详细的io统计信息(-x选项)

为显示更详细的io设备统计信息,我们可以使用-x选项,在分析io瓶颈时,一般都会开启-x选项:

linux # iostat -x -k -d 1

Linux 2.6.16.60-0.21-smp (linux)     06/13/12

……

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00  9915.00    1.00   90.00     4.00 34360.00   755.25    11.79  120.57   6.33  57.60

 

以上各列的含义如下:

选项

说明

rrqm/s

每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并

wrqm/s

每秒对该设备的写请求被合并次数

r/s

每秒完成的读次数

w/s

每秒完成的写次数

rkB/s

每秒读数据量(kB为单位)

wkB/s

每秒写数据量(kB为单位)

avgrq-sz

平均每次IO操作的数据量(扇区数为单位)

avgqu-sz

平均等待处理的IO请求队列长度

await

平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)

svctm

平均每次IO请求的处理时间(毫秒为单位)

%util

采用周期内用于IO操作的时间比率,即IO队列非空的时间比率

对于以上示例输出,我们可以获取到以下信息:

- 每秒向磁盘上写30M左右数据(wkB/s值)

- 每秒有91次IO操作(r/s+w/s),其中以写操作为主体

- 平均每次IO请求等待时间为120.57毫秒,处理时间为6.33毫秒

- 等待处理的IO请求队列中,平均有11.79个请求驻留

实际查看时,一般结合着多个选项查看: 如iostat -dxm 3

[root@yg-uhost724 ~]# iostat -dxm 5

Linux 2.6.32-279.19.16.el6.ucloud.x86_64 (yg-uhost724)  06/12/2017  _x86_64_    (24 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  svctm  %util

sda               0.69    29.89    1.36   21.52     0.05     0.20    23.04     0.04    1.96   0.29   0.67
sdb             682.88  1811.86   77.94  417.73     2.97     8.71    48.27     0.01    0.03   0.10   4.89
dm-14             0.00     0.00    0.03   41.47     0.00     0.16     8.00     0.01    0.12   0.02   0.10
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     8.00     0.00    7.24   0.07   0.00
dm-2              0.00     0.00    0.00    0.00     0.00     0.00     8.00     0.00    0.07   0.04   0.00
dm-3              0.00     0.00    0.00    0.98     0.00     0.00     8.00     0.00    3.57   0.22   0.02
dm-5              0.00     0.00    0.18   50.51     0.00     0.20     8.00     0.03    0.44   0.01   0.07
dm-1              0.00     0.00    1.50    5.51     0.01     0.02     8.00     0.03    4.04   0.04   0.03
dm-6              0.00     0.00  123.23 1042.56     0.48     4.07     8.00     0.01    0.01   0.02   1.90
dm-4              0.00     0.00  635.74 1069.59     2.48     4.18     8.00     0.00    0.04   0.01   2.39
sdc               7.23   106.32    0.52    0.94     0.03     0.42   627.54     0.02   13.32  17.58   2.58

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  svctm  %util

sda               0.00    15.00    0.40   17.80     0.00     0.10    10.90     0.00    0.10   0.10   0.18
sdb              82.60 11967.00  414.60 2500.20     1.94    56.51    41.07    12.07    4.14   0.07  21.02
dm-14             0.00     0.00    0.00    0.20     0.00     0.00     8.00     0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-2              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-3              0.00     0.00    0.00    1.80     0.00     0.01     8.00     0.00    0.11   0.11   0.02
dm-5              0.00     0.00    0.00    2.00     0.00     0.01     8.00     0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    2.40     0.00     0.01     8.00     0.01    4.17   1.25   0.30
dm-6              0.00     0.00    0.00   45.20     0.00     0.18     8.00     0.11    2.45   0.55   2.48
dm-4              0.00     0.00  497.20 14415.80     1.94    56.31     8.00    72.87    4.83   0.01  19.14
sdc               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00

 

转载于:https://www.cnblogs.com/suxin1110/p/9675465.html

你可能感兴趣的文章
【机房重构】总结
查看>>
Android从无知到有知——NO.6
查看>>
自己写的php curl库实现整站克隆
查看>>
Combination Sum III -- leetcode
查看>>
机器学习算法中的过拟合与欠拟合(转载)
查看>>
机器学习算法实践:决策树 (Decision Tree)(转载)
查看>>
slack 团队协作平台
查看>>
【C#】:浅谈反射机制 【转】
查看>>
【iCore4 双核心板_FPGA】例程五:基础逻辑门实验——逻辑门使用
查看>>
使用Nmon监控Linux的系统性能
查看>>
React-Native 之 GD (十三)数据持久化(realm) 及 公共Cell
查看>>
flask及扩展源码解读
查看>>
通俗易懂详解Java代理及代码实战
查看>>
需求工程的基本过程
查看>>
Android 版本对于 API
查看>>
Hadoop,MapReduce
查看>>
Kafka Streams简介: 让流处理变得更简单
查看>>
「mysql优化专题」90%程序员面试都用得上的索引优化手册(5)
查看>>
Django---ORM操作大全
查看>>
JAVA远程通信的几种选择(RPC,Webservice,RMI,JMS的区别)
查看>>