码迷,mamicode.com
首页 > 移动开发 > 详细

iostat和iotop

时间:2020-12-29 10:58:43      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:分数   %s   idle   iotop   磁盘   系统   统计   padding   use   

一、iostat

# iostat
Linux 3.10.0-957.el7.x86_64 (localhost.localdomain)     2020年10月10日     _x86_64_    (3 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.08    0.00    0.19    0.12    0.00   99.61
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sdb               0.01         0.38         0.00       5188          0
sda               0.94        28.69         2.84     387369      38280
scd0              0.00         0.08         0.00       1028          0
dm-0              0.85        26.32         1.69     355363      22788
dm-1              0.01         0.16         0.00       2204          0

avg-cpu段:

%user: 在用户级别运行所使用的CPU的百分比.
%nice: nice操作所使用的CPU的百分比.
%system: 在系统级别(kernel)运行所使用CPU的百分比.
%iowait: CPU等待硬件I/O时,所占用CPU百分比.
%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比
%idle: CPU空闲时间的百分比.

Device段

tps: 每秒钟发送到的I/O请求数.
Blk_read /s:  每秒读取的block数.
Blk_wrtn/s:  每秒写入的block数.
Blk_read:   读入的block总数.
Blk_wrtn:   写入的block总数.

组合参数说明

Blk_read:读入块的当总数.
Blk_wrtn:写入块的总数.
kB_read/s:每秒从驱动器读入的数据量,单位为K.
kB_wrtn/s:每秒向驱动器写入的数据量,单位为K.
kB_read:读入的数据总量,单位为K.
kB_wrtn:写入的数据总量,单位为K.
rrqm/s:将读入请求合并后,每秒发送到设备的读入请求数.
wrqm/s:将写入请求合并后,每秒发送到设备的写入请求数.
r/s:每秒发送到设备的读入请求数.
w/s:每秒发送到设备的写入请求数.
rsec/s:每秒从设备读入的扇区数.
wsec/s:每秒向设备写入的扇区数.
rkB/s:每秒从设备读入的数据量,单位为K.
wkB/s:每秒向设备写入的数据量,单位为K.
avgrq-sz:发送到设备的请求的平均大小,单位是扇区.
avgqu-sz:发送到设备的请求的平均队列长度.
await:I/O请求平均执行时间.包括发送请求和执行的时间.单位是毫秒.
svctm:发送到设备的I/O请求的平均执行时间.单位是毫秒.
%util:在I/O请求发送到设备期间,占用CPU时间的百分比.用于显示设备的带宽利用率.

iostat -d 2 6

Linux 3.10.0-957.el7.x86_64 (localhost.localdomain)     2020年10月10日     _x86_64_    (3 CPU)
 
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.06    0.00    0.16    0.08    0.00   99.70
 
Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sdb               0.00     0.00    0.01    0.00     0.27     0.00    72.06     0.00    1.64    1.64    0.00   1.13   0.00
sda               0.00     0.01    0.51    0.17    20.07     2.16    65.53     0.01   10.68   13.83    1.03   3.66   0.25
scd0              0.00     0.00    0.00    0.00     0.05     0.00   114.22     0.00   21.06   21.06    0.00  20.72   0.00
dm-0              0.00     0.00    0.45    0.18    18.41     1.36    63.48     0.01   11.41   15.56    1.01   3.95   0.25
dm-1              0.00     0.00    0.00    0.00     0.11     0.00    50.09     0.00    0.16    0.16    0.00   0.09   0.00
  1. r/s, w/s, rkB/s, wkB/s:这些表示设备上每秒钟的读写次数和读写的字节数(单位是k字节)。这些可以看出设备的负载情况。性能问题可能就是简单的因为大量的文件加载请求。

  2. await:I/O 等待的平均时间(单位是毫秒)。这是应用程序所等待的时间,包含了等待队列中的时间和被调度服务的时间。过大的平均等待时间就预示着设备超负荷了或者说设备有问题了。

  3. avgqu-sz:设备上请求的平均数。数值大于 1 可能表示设备饱和了(虽然设备通常都是可以支持并行请求的,特别是在背后挂了多个磁盘的虚拟设备)。

  4. %util:设备利用率。是使用率的百分数,展示每秒钟设备工作的时间。这个数值大于 60% 则会导致性能很低(可以在 await 中看),当然这也取决于设备特点。这个数值接近 100% 则表示设备饱和了。

每隔2秒显示一次sda及上面所有分区的统计信息,共输出6次.

iostat -p sda 2 6<br>
Linux 3.10.0-957.el7.x86_64 (localhost.localdomain)     2020年10月10日     _x86_64_    (3 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.06    0.00    0.16    0.08    0.00   99.71
 
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.67        19.74         2.14     387369      41916
sda1              0.06         1.33         0.79      26138      15491
sda2              0.60        18.28         1.35     358655      26424

显示块设备的扩展信息,以k为单位,每1秒刷新一次,总刷新10次

# iostat -d -k -x 1 10
Linux 3.10.0-957.el7.x86_64 (localhost.localdomain)     2020年10月10日     _x86_64_    (3 CPU)
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.6

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

每秒向磁盘上写30M左右数据(wkB/s值)
每秒有91次IO操作(r/s+w/s),其中以写操作为主体
平均每次IO请求等待处理的时间为120.57毫秒,处理耗时为6.33毫秒
等待处理的IO请求队列中,平均有11.79个请求驻留

以上各值之间也存在联系,我们可以由一些值计算出其他数值,例如:

util = (r/s+w/s) * (svctm/1000)

对于上面的例子有:util = (1+90)*(6.33/1000) = 0.57603

指定查看sda的TPS和吞吐量信息(磁盘读写速度单位为MB),每间隔2秒刷新一次

iostat -d -m 2 |grep sda
  Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
  sda               0.19         0.00         0.07        230      12004
  sda             368.00         0.00       184.00          0        368
  sda             373.00         0.00       186.25          0        372
  sda             351.00         0.00       175.50          0        351
  sda             345.50         0.00       172.75          0        345
  sda             362.50         0.00       181.00          0        362
  sda             375.00         0.00       187.39          0        374
  sda             369.00         0.00       184.36          0        368

 

iostat和iotop

标签:分数   %s   idle   iotop   磁盘   系统   统计   padding   use   

原文地址:https://www.cnblogs.com/wuchangblog/p/14175801.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!