linux io分析工具,io性能分析工具-iostat

linux-io性能分析

iostat (input/output statistics) 是一个linux系统监视工具,它可以用于收集并展示操作系统存储的输入、输出统计。它经常用于识别存储设备(本地磁盘、远程磁盘)的性能问题。

man手册说明

iostat - Report Central Processing Unit (CPU) statistics and input/output statistics for devices and partitions.

iostat 可以针对CPU生成统计信息,同时也可以为设备和分区生成IO统计。

语法:

iostat [-选项] [interval] [count]

其中:

interval指示了每间隔多少秒输出一次统计报告,count指示了总共输出多少次统计报告。

例如: iostat 2 3 即为: 每隔2秒输出一次统计报告,共输出3次。

命令的输出结果如下:

[root@iZb1210589viotftelmrcx2Z ~]# iostat 2 3

Linux 3.10.0-957.21.3.el7.x86_64 (iZbp10j40viotftelmrcx2Z) 12/08/2020 _x86_64_ (8 CPU)

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

1.05 0.00 0.16 0.31 0.00 98.48

Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn

vda 117.95 68.18 665.39 21871116 213457718

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

1.06 0.00 0.13 0.44 0.00 98.37

Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn

vda 160.50 0.00 738.00 0 1476

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

0.75 0.00 0.12 0.25 0.00 98.88

Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn

vda 93.50 0.00 528.00 0 1056

[root@iZb1210589viotftelmrcx2Z ~]#

选项参数说明:

选项简称

相关

含义

-c

CPU

展示CPU使用率

-d

device

展示设备的使用率

-h

human

以人类可读的形式展示设备使用率

-k

kilobytes

以kb为单位展示每秒的统计信息

-m

megabytes

以mb为单位展示每秒的统计信息

-N

name

展示已注册的设备映射器的名称

-p

partitions

展示分区信息

-t

time

每次展示时,打印时间信息

-v

version

打印版本信息

-x

extended

展示扩展的统计信息

输出说明

iostat命令可以用于生成俩种类型的报告,一种是cpu的使用率报告,另一种是设备的使用率报告。

CPU使用率报告

iostat命令最先输出的是cpu使用率报告。对于有多个处理器的系统来说,所统计的值是所有cpu的平均值,报告的形式如下:

字段

含义

%user

Show the percentage of CPU utilization that occurred while executing at the user level (application)

%nice

Show the percentage of CPU utilization that occurred while executing at the user level with nice priority.

%system

Show the percentage of CPU utilization that occurred while executing at the system level (kernel).

%iowait

Show the percentage of time that the CPU or CPUs were idle during which the system had an outstanding disk I/O request.

%steal

Show the percentage of time spent in involuntary wait by the virtual CPU or CPUs while the hypervisor was servicing another virtual processor.

%idle

Show the percentage of time that the CPU or CPUs were idle and the system did not have an outstanding disk I/O request.

其中:

%iowait 和 %idle 都反映了cpu的空闲时间占比,不同的是%iowait反映的是cpu由于等待io操作而处于空闲状态,它是一种非正常的空闲。而%idle指的是cpu由于没有任务执行而处于空闲状态。

设备使用率报告

iostat命令产生的第二个报告就是设备使用率报告,设备报告反映了单个物理设备或分区的使用情况。我们可以在命令行中指定块设备或者分区。如果指定块设备/分区,默认就展示所有系统上所有设备的统计。

字段

中文含义

英文原文

tps

发送到设备的每秒的传输数,一次传输就是一次到设备的IO请求,多个逻辑请求可以被合成单个的IO请求发送到设备上

Indicate the number of transfers per second that were issued to the device. A transfer is an I/O request to the device. Multiple logical requests can be combined into a single I/O request to the device. A transfer is of indeter‐ minate size

Blk_read/s

每秒从设备读取的块数

Indicate the amount of data read from the device expressed in a number of blocks (kilobytes, megabytes) per second.Blocks are equivalent to sectors and therefore have a size of 512 bytes.

Blk_wrtn/s

每秒向设备写入的块数

Indicate the amount of data written to the device expressed in a number of blocks (kilobytes, megabytes) per second.

Blk_read

读取的总块数

The total number of blocks (kilobytes, megabytes) read.

Blk_wrtn

写入的总块数

The total number of blocks (kilobytes, megabytes) written.

rrqm/s

每秒合并的读请求

The number of read requests merged per second that were queued to the device.

wrqm/s

每秒合并的写请求

The number of write requests merged per second that were queued to the device.

r/s

该设备每秒完成的读请求(合并后的)

The number (after merges) of read requests completed per second for the device.

w/s

该设备每秒完成的写请求(合并后的)

The number (after merges) of write requests completed per second for the device

rsec/s

每秒从该设备读取的分区数

The number of sectors (kilobytes, megabytes) read from the device per second.

wsec/s

每秒从该设备写入的分区数

The number of sectors (kilobytes, megabytes) written to the device per second.

avgrq-sz

发送到该设备的平均请求(以分区数计)

The average size (in sectors) of the requests that were issued to the device.

avgqu-sz

发送到该设备的请求的平均队列长度

The average queue length of the requests that were issued to the device.

await

IO请求的平均等待时间(包括请求在队列中的时间和服务该IO请求消耗的时间,毫秒值)

The average time (in milliseconds) for I/O requests issued to the device to be served. This includes the time spent by the requests in queue and the time spent servicing them.

r_await

读请求的等待时间(包括请求在队列中的时间和服务该IO请求消耗的时间,毫秒值)

The average time (in milliseconds) for read requests issued to the device to be served. This includes the time spent by the requests in queue and the time spent servicing them

w_await

写请求的平均等待时间

The average time (in milliseconds) for write requests issued to the device to be served. This includes the time spent by the requests in queue and the time spent servicing them.

svctm

IO请求的平均服务时间

The average service time (in milliseconds)

%util

表示磁盘的繁忙程度,对于SSD来说此项指标不能说明磁盘繁忙

Percentage of elapsed time during which I/O requests were issued to the device (bandwidth utilization for the device). Device saturation occurs when this value is close to 100% for devices serving requests serially. But for devices serving requests in parallel, such as RAID arrays and modern SSDs, this number does not reflect their performance limits

常用命令示例:

iostat -d 2

iostat -d 2

以两秒为间隔连续性地展示设备的统计情况

iostat -d 2 6

iostat -d 2 6

输出所有设备的统计报告,每隔两秒统计一次,共统计6次。

iostat -x sda sdb 2 6

iostat -x sda sdb 2 6

每隔两秒输出一次sda和sdb设备的带有扩展信息的统计报告

iostat -p sda 2 6

iostat -p sda 2 6

每隔两秒输出一次sda及其分区的统计报告

iostat -x /dev/vda1 2 2

[root@iZb1210589viotftelmrcx2Z ~]# iostat -p -x /dev/vda1 2 2

Linux 3.10.0-957.21.3.el7.x86_64 (iZbp10j40viotftelmrcx2Z) 12/08/2020 _x86_64_ (8 CPU)

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

1.05 0.00 0.16 0.31 0.00 98.49

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.47 5.14 1.28 116.69 68.61 666.04 12.45 0.92 0.96 21.64 0.73 7.14 84.22

vda1 0.47 5.14 1.28 61.48 68.61 666.04 23.41 0.11 1.77 21.64 1.35 0.44 2.77

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

1.06 0.00 0.19 0.44 0.00 98.31

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.00 4.00 0.00 157.00 0.00 692.00 8.82 0.95 0.30 0.00 0.30 5.97 93.70

vda1 0.00 4.00 0.00 86.50 0.00 692.00 16.00 0.05 0.53 0.00 0.53 0.40 3.45

[root@iZb1210589viotftelmrcx2Z ~]#

[root@iZb1210589viotftelmrcx2Z ~]# iostat -d -k 1 1

Linux 3.10.0-957.21.3.el7.x86_64 (iZbp10j40viotftelmrcx2Z) 12/08/2020 _x86_64_ (8 CPU)

Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn

vda 117.97 68.57 666.01 21736464 211109566

[root@iZb1210589viotftelmrcx2Z ~]# iostat -d -k 1 3

Linux 3.10.0-957.21.3.el7.x86_64 (iZbp10j40viotftelmrcx2Z) 12/08/2020 _x86_64_ (8 CPU)

Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn

vda 117.97 68.57 666.00 21736464 211114678

Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn

vda 220.00 0.00 936.00 0 936

Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn

vda 97.00 0.00 524.00 0 524

[root@iZb1210589viotftelmrcx2Z ~]#

磁盘性能指标

一般使用以下指标衡量硬盘的性能:

IOPS:每秒读/写次数,单位为次(计数)。存储设备的底层驱动类型决定了不同的 IOPS。

吞吐量: 每秒的读写数据量,单位为MB/s。

时延: I/O 操作的发送时间到接收确认所经过的时间,单位为秒。

IOPS

1be656b90b9b

IOPS

IOPS (Input/Output Per Second)即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一。IOPS是指单位时间内系统能处理的I/O请求数量,一般以每秒处理的I/O请求数量为单位,I/O请求通常为读或写数据操作请求。

1be656b90b9b

image.png

参考文献

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值