Linux Tools 之 iostat 工具总结
iostat是Linux中被用来监控系统的I/O设备活动情况的工具,是input/output statistics
的缩写。它可以生成三种类型的报告:
- CPU利用率报告
- 设备利用率报告
- 网络文件系统报告
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压力就比较大。
参考
- http://man7.org/linux/man-pages/man1/iostat.1.html
- https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/iostat.html
- http://www.ha97.com/4546.html
☆〖本人水平有限,文中如有错误还请留言批评指正!〗☆
Linux Tools 之 iostat 工具总结的更多相关文章
- Linux IO时事检测工具iostat
Linux IO时事检测工具iostat iostat命令用于检测linux系统io设备的负载情况,运行iostat将显示自上次运行该命令以后的统计信息.用户可以通过指定统计的次数和时间来获得所需的统 ...
- linux 性能调优工具参考 (linux performance tools)
之前发现几张图对于linux使用者有着较强的参考意义,下面对其进行简单备忘: # linux 静态信息查看工具 # linux 性能测试工具 benchmark # linux 性能观测工具 # li ...
- Linux性能分析命令工具汇总
转自:http://rdc.hundsun.com/portal/article/731.html?ref=myread 出于对Linux操作系统的兴趣,以及对底层知识的强烈欲望,因此整理了这篇文章. ...
- 使用Linux的命令行工具做简单的文本分析
Basic Text Analysis with Command Line Tools in Linux | William J Turkel 这篇文章非常清楚的介绍了如何使用Linux的命令行工具进 ...
- linux系统监控常用工具
linux系统监控常用工具 一.系统核心工具包(coreutils) 1./bin/df 报告系统的磁盘空间用量 df -h 显示磁盘分区fdisk -l 2./bin/uname 显示系统信息 u ...
- 每天一个linux命令(37)--iostat命令
Linux 系统中的iostat是I/O statistics (输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视.它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况. ...
- 2. Packet crafting tools (封包工具 6个)
2. Packet crafting tools (封包工具 6个) NetcatHping这个方便小巧的实用程序组装并发送定制的ICMP,UDP或TCP数据包,然后显示任何回复. 它受到ping命令 ...
- Linux系统IO分析工具之iotstat常用参数介绍
Linux系统IO分析工具之iotstat常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 1>.安装iostat [root@flume115 ~]# yum - ...
- Linux系统IO分析工具之iotop常用参数介绍
Linux系统IO分析工具之iotop常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在一般运维工作中经常会遇到这么一个场景,服务器的IO负载很高(iostat中的 ...
随机推荐
- C# 集合的交集 差集 并集 去重
C# 集合的交集 差集 并集 去重 两个对象list,直接比较是不行的,因为他们存的地址不一样 需要重写GetHashCode()与Equals(object obj)方法告诉电脑 class Stu ...
- OSI网络模型和网络连接设备
OSI网络模型和网络连接设备 OSI模型 7层之间传输的协议传输单元(PDU)的专业叫法. 第7-5层(应用层)传输的pdu叫:data 第4层(传输层)传输的pdu叫:segment(数据段) 第3 ...
- Flask Rest接口
Flask适用于简单的接口请求 安装 pip install Flask pip install Flask-RESTful 仅简单请求url,然后出发处理程序,返回处理结果 app.py代码如下 f ...
- 各种windows10下的快捷键
Windows键+ctrl+D 创建虚拟桌面 windows键+Ctrl+方向键 可以切换桌面 windows+tab ctrl+alt+TAB 切换应用 windows+[1-9] 打开任务栏固定的 ...
- windows系统下mount创建的.vhd
自己无聊时候分出了几个磁盘用来练习,存放个人东西,cdef盘除了c盘都是随便乱存的(粗心-_-),于是分出了两个20G的vhd文件,但是每次开机都要去d盘点击挂载太麻烦,现在分享自己的方法. 创建mo ...
- lstm和gru详解
一.LSTM(长短期记忆网络) LSTM是一种特殊的RNN类型,一般的RNN结构如下图所示,是一种将以往学习的结果应用到当前学习的模型,但是这种一般的RNN存在着许多的弊端.举个例子,如果我们要预测“ ...
- 浅谈lowbit运算
关于lowbit运算的相关知识 本篇随笔简单讲解一下计算机中位运算的一类重要运算方式--\(lowbit\)运算. lowbit的概念 我们知道,任何一个正整数都可以被表示成一个二进制数.如: \[ ...
- 从项目中理解let和const为什么如此重要
变量声明 变量声明方式 伴随js诞生的var // 语法 var varName = value var a = 1 // 这样子你就得到了一个变量 var缺陷场景分析 var specialUser ...
- multer 基础教程(英文版)
Multer is a node.js middleware for handling multipart/form-data, which is primarily used for uploadi ...
- FaaS(函数即服务) + BaaS(后台即服务)
作者 | 黄子毅(紫益) 阿里前端技术专家 导读:前端开发者是最早享受到 “Serverless” 好处的群体,因为浏览器就是一个开箱即用.甚至无需为计算付费的环境!Serverless 把前端开发体 ...