iostat是Linux中被用来监控系统的I/O设备活动情况的工具,是input/output statistics的缩写。它可以生成三种类型的报告:

  1. CPU利用率报告
  2. 设备利用率报告
  3. 网络文件系统报告

iostat通过生成的报告来帮助管理员更好的调整系统设置来平衡各个物理磁盘之间的I/O负载。

Linux里iostat命令是在包含在系统包sysstat当中的,如果没有iostat命令则需事先安装sysstat系统包,可用yum命令来进行安装:

# yum install sysstat -y

主要说明

iostat [OPTION] [DEVICE] [INTERVAL [count]]

详细参数说明可以参考:http://man7.org/linux/man-pages/man1/iostat.1.html

报告说明

这里主要以经常用到的CPU磁盘I/O分析需要用到的报告为主。

CPU利用率报告(CPU Utilization Report)

如果服务器是多核CPU,则数值为所有核心数值的平均值。

%user: CPU处在用户(应用)级别的利用率百分比。
%nice:CPU处在用户级别且有`NICE`值的利用率百分比。
%system:CPU处在系统(内核)级别的利用率百分比。
%iowait:CPU等待系统I/O请求的时间百分比。
%steal:虚拟CPU无意识等待系统程序处理另外的虚拟处理器所花费时间的百分比。
%idle:CPU空闲的时间百分比。

设备利用率报告(Device Utilization Report)

Device:显示的是设备名或者是分区名。不同的内核版本有不同的显示方式。
tps:设备每秒的传输次数。一次传输就是对设备一次的`I/O`请求,多次的逻辑请求可以合并成单个`I/O`请求。
Blk_read/s:每秒从设备读取的数据量,以`BLOCK`方式计算,在内核`2.4`及之后版本中,每个`BLOCK`的大小为512字节。
Blk_wrtn/s:每秒写入设备的数据量。
Blk_read:总共读取的`BLOCK`数量。
Blk_wrtn:总共写入的`BLOCK`数量。
kB_read/s:每秒从设备读取的数据量,单位`KB`。
kB_wrtn/s:每秒写入设备的数据量,单位`KB`。
kB_read:总共从设备读取的数据量,单位`KB`。
kB_wrtn:总共写入设备的数据量,单位`KB`。
MB_read/s、MB_wrtn/s、MB_read、MB_wrtn:参考上述的信息描述,单位为`MB`。
rrqm/s:每秒合并的读请求数,当请求排队到设备时。
wrqm/s:每秒合并的写请求数,当请求排队到设备时。
r/s:每秒发送给设备的读请求数。
w/s:每秒发送给设备的写请求数。
rsec/s:每秒从设备读取的扇区数量。
wsec/s:每秒写入设备的扇区数量。
rkB/s:每秒从设备读取的`KB`数。
wkB/s:每秒写入设备的`KB`数。
rMB/s、wMB/s:参考上述的信息描述,单位为`MB`。
avgrq-sz:发送给设备请求的平均大小(以扇区为单位)。
avgqu-sz:发送给设备请求队列的平均长度。
await:发送给设备`I/O`请求的平均响应时间,单位是毫秒。包含请求于队列中的时间和服务于队列中的时间。
svctm:发送给设备`I/O`请求的平均服务时间。将在之后版本的`iostat`移除这个指标。
%util:发送给设备`I/O`请求消耗的时间的百分比。

主要选项

-c:显示CPU利用率报告。
-d:显示设备利用率报告。
-k:输出统计信息以`KB/S`显示。
-m:输出统计信息以`MB/S`显示。
-N:显示逻辑卷(LVM)的信息。
-n:显示NFS的信息。
-p [ { device [,...] | ALL } ]:显示指定的磁盘设备或者分区信息。
-t:显示报告的时间。timestamp格式由环境变量`S_TIME_FORMAT`决定。
-x:显示扩展的统计信息。
-y:忽略从系统启动到当前时间第一份报告。
-z:忽略显示不活动设备的信息。

主要用法

1、所有设备的负载情况

# iostat

Linux 2.6.32-358.el6.x86_64 (db) 10/25/2018 _x86_64_ (1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle
0.60 0.00 0.39 0.42 0.00 98.60 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 1.83 0.84 26.61 1437902 45525316

OR

# iostat -x

Linux 2.6.32-358.el6.x86_64 (db) 10/25/2018 _x86_64_ (1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle
0.60 0.00 0.39 0.42 0.00 98.60 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.01 1.38 0.03 1.81 0.84 26.61 14.97 0.01 3.23 4.01 3.21 2.89 0.53

2、显示CPU信息

# iostat -c 1 5
Linux 2.6.32-358.el6.x86_64 (db)        10/25/2018      _x86_64_        (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
0.60 0.00 0.39 0.42 0.00 98.60 avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.00 10.00 0.00 90.00 avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.00 0.00 0.00 100.00 avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.00 0.00 0.00 100.00 avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.00 0.00 0.00 100.00

3、显示TPS

# iostat -d -k 1 3
Linux 2.6.32-358.el6.x86_64 (db)        10/25/2018      _x86_64_        (1 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda 1.83 0.42 13.30 718951 22763214 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.00 0.00 0.00 0 0 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.00 0.00 0.00 0 0

4、显示设备使用率(%util)和响应时间(await)

# iostat -d -k -x 1 3
Linux 2.6.32-754.2.1.el6.x86_64 (db)  10/25/2018      _x86_64_        (24 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda 0.01 61.87 0.13 62.10 11.18 479.23 15.76 0.01 0.13 0.05 0.31 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sda 0.00 4.00 1.00 16.00 8.00 80.00 10.35 0.01 0.71 0.71 1.20 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sda 0.00 1.00 0.00 12.00 0.00 52.00 8.67 0.00 0.17 0.17 0.20

注意:

以上主要用法都是所有设备的信息,如果需要指定某个设备,则可以加设备名进行单独显示;

如果不包含服务器开机至今第一次统计信息的展示,则需要加上选项-y去除。

总结

  • %util如果接近于100%,则表明磁盘一直在处理I/O请求,系统I/O是满负载状态,磁盘可能会存在I/O瓶颈,因为如有多个磁盘并发,并不一定说明磁盘有瓶颈;
  • 响应时间await时间一般要低于5ms(<5ms),如果超过10ms(>10ms)就比较大了;
  • %idle如果少于30%,则I/O压力就比较大。

参考

☆〖本人水平有限,文中如有错误还请留言批评指正!〗☆

Linux Tools 之 iostat 工具总结的更多相关文章

  1. Linux IO时事检测工具iostat

    Linux IO时事检测工具iostat iostat命令用于检测linux系统io设备的负载情况,运行iostat将显示自上次运行该命令以后的统计信息.用户可以通过指定统计的次数和时间来获得所需的统 ...

  2. linux 性能调优工具参考 (linux performance tools)

    之前发现几张图对于linux使用者有着较强的参考意义,下面对其进行简单备忘: # linux 静态信息查看工具 # linux 性能测试工具 benchmark # linux 性能观测工具 # li ...

  3. Linux性能分析命令工具汇总

    转自:http://rdc.hundsun.com/portal/article/731.html?ref=myread 出于对Linux操作系统的兴趣,以及对底层知识的强烈欲望,因此整理了这篇文章. ...

  4. 使用Linux的命令行工具做简单的文本分析

    Basic Text Analysis with Command Line Tools in Linux | William J Turkel 这篇文章非常清楚的介绍了如何使用Linux的命令行工具进 ...

  5. linux系统监控常用工具

    linux系统监控常用工具 一.系统核心工具包(coreutils) 1./bin/df 报告系统的磁盘空间用量 df -h  显示磁盘分区fdisk -l 2./bin/uname 显示系统信息 u ...

  6. 每天一个linux命令(37)--iostat命令

    Linux 系统中的iostat是I/O statistics (输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视.它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况. ...

  7. 2. Packet crafting tools (封包工具 6个)

    2. Packet crafting tools (封包工具 6个) NetcatHping这个方便小巧的实用程序组装并发送定制的ICMP,UDP或TCP数据包,然后显示任何回复. 它受到ping命令 ...

  8. Linux系统IO分析工具之iotstat常用参数介绍

    Linux系统IO分析工具之iotstat常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 1>.安装iostat [root@flume115 ~]# yum - ...

  9. Linux系统IO分析工具之iotop常用参数介绍

      Linux系统IO分析工具之iotop常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在一般运维工作中经常会遇到这么一个场景,服务器的IO负载很高(iostat中的 ...

随机推荐

  1. [PHP] PHP PDO与mysql的连接单例防止超时情况处理

    这个数据库类主要处理了单例模式下创建数据库对象时,如果有两次较长时间的间隔去执行sql操作,再次处理会出现连接失败的问题,利用一个cache数组存放pdo对象与时间戳,把两次执行之间的时间进行了比较, ...

  2. luoguP2486 [SDOI2011]染色

    题目 Description 给定一棵有n个节点的无根树和m个操作,操作有2类: 1.将节点a到节点b路径上所有点都染成颜色c: 2.询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段) ...

  3. c# 第26节 Main方法

    本节内容: 1:Main方法 2:Main方法的定义 3:测试Main函数传入参数 4:Main的大总结 1:Main方法是什么 2:Main方法的定义 3:测试打印出外部传入Main的参数 clas ...

  4. mysql group by 的用法解析

    1. group by的常规用法 group by的常规用法是配合聚合函数,利用分组信息进行统计,常见的是配合max等聚合函数筛选数据后分析,以及配合having进行筛选后过滤. 聚合函数max se ...

  5. JAVA中a++ 和 ++a 的区别

                         

  6. Fink| API| Time与Window

    1. Flink 批处理Api 1.1 Source Flink+kafka是如何实现exactly-once语义的 Flink通过checkpoint来保存数据是否处理完成的状态: 有JobMana ...

  7. Vue.js 创建第一个应用

    VUE官网下载Vue.js文件或者用Vue的CDN地址 在项目中引入Vue.js文件 代码: <!doctype html> <html lang="en"> ...

  8. CSP-S 2019 题解

    D1T1-格雷码 题中给出了构造格雷码的方法. $solve(n,k)$表示求出$2^n$意义下排名为$k$的格雷码, 只要比较一下考虑最高位的0/1取值就好了. 部分分提示了要开$unsigned\ ...

  9. Azure EA (3) 使用Postman访问海外Azure Billing API

    <Windows Azure Platform 系列文章目录> 本文介绍的是海外版的Azure Global服务,因为跨境内境外网络,访问速度会比较慢 在开始使用Azure Billing ...

  10. BIM软件Revit的优点

    BIM软件Revit的优点        那么多人喜欢使用这个软件的是因为BIM软件Revit极其强大的集成性和平台性.          BIM软件Revit的集成性        建筑是一个复杂数 ...