Linux性能测试 iostat命令
Linux系统出现了性能问题,一般我们可以通过top、iostat、free、vmstat等命令 来查看初步定位问题。其中iostat可以给我们提供丰富的IO状态数据。
iostat 由 Red Hat Enterprise Linux AS 发布。同时 iostat 也是 Sysstat 的一部分,可以下载到,网址是 http://perso.wanadoo.fr/sebastien.godard/
执行 iostat 命令可以从系统启动之后的 CPU 平均时间,类似于 uptime。除此之外,iostat 还对创建一个服务器磁盘子系统的活动报告。该报告包含两部分:CPU 使用情况和磁盘使用 情况。
1. 基本使用
iostat [-c|-d] [-k] [-t] [间隔描述] [检测次数]
参 数:
-c : 仅显示cpu的状态
-d : 仅显示存储设备的状态,不可以和-c一起使用
-k : 默认显示的是读入读出的block信息,用-k可以改成KB大小来显示
-t : 显示日期
-p device | ALL : device为某个设备或者某个分区,如果使用ALL,就表示要显示所有分区和设备的信息
显示示例:
avg-cpu: %user %nice %sys %iowait %idle
4.55 0.00 0.63 0.26 94.56 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
cciss/c0d0 30.11 68.20 67.13
cciss/c0d0p1 0.00 0.00 0.00
cciss/c0d0p2 83.78 68.18 67.11
dm- 1.06 0.60 4.07
dm- 82.50 67.42 62.23
dm- 0.21 0.18 0.83
dm- 0.00 0.00 0.00
CPU 占用情况包括四块内容
%user:显示user level (applications)时,CPU的占用情况。
%nice:显示user level在 nice priority 时,CPU 的占用情况。
%sys: 显示 system level (kernel)时,CPU 的占用情况。
%idle: 显示CPU 空闲时间所占比例。
磁盘使用报告分成以下几个部分:
Device: 块设备的名字
tps: 该设备每秒 I/O 传输的次数。多个 I/O 请求可以组合为一个,每个 I/O 请求传输的字节数不同,因此可以将多个 I/O 请求合并为一个。
Blk_read/s, Blk_wrtn/s: 表示从该设备每秒读写的数据块数量。块的大小可以不同,如1024, 2048 或 4048 字节,这取决于 partition 的大小。
Blk_read, Blk_wrtn: 指示自从系统启动之后数据块读/写的合计数。也可以查看这几个文件/proc/stat,/proc/partitions,/proc/diskstats的内容。
2. -x 参数
使用-x参数我们可以获得更多统计信息。
iostat -d -x -k
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sda 1.56 28.31 7.80 31.49 42.51 2.92 21.26 1.46 1.16 0.03 0.79 2.62 10.28
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sda 2.00 20.00 381.00 7.00 12320.00 216.00 6160.00 108.00 32.31 1.75 4.50 2.17 84.20
rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的 时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge);wrqm/s:每秒这个 设备相关的写入请求有多少被Merge了。
rsec/s:每秒读取的扇区数;wsec/: 每秒写入的扇区数。r/s:The number of read requests that were issued to the device per second;w/s:The number of write requests that were issued to the device per second;
await:每一个IO请求的处理的平均时间(单位是微秒)。这里可以理解为IO的响应时 间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。
%util:在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该 设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因 为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。
3. -c 参数
iostat还可以用来获取cpu部分状态值:
iostat -c
avg-cpu: %user %nice %sys %iowait %idle
1.98 0.00 0.35 11.45 86.22
avg-cpu: %user %nice %sys %iowait %idle
1.62 0.00 0.25 34.46 63.67
4. 常见用法
$iostat -d -k 1 10 #查看TPS和吞吐量信息
iostat -d -x -k 1 10 #查看设备使用率(%util)、响应时间(await)
iostat -c 1 10 #查看cpu状态
5. 实例分析
$$iostat -d -k |grep sda10
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda10 60.72 18.95 71.53
sda10 299.02 4266.67 129.41
sda10 483.84 4589.90 4117.17
sda10 218.00 3360.00 100.00
sda10 546.00 8784.00 124.00
sda10 827.00 13232.00 136.00
上面看到,磁盘每秒传输次数平均约400;每秒磁盘读取约5MB,写入约1MB。
iostat -d -x -k
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sda 1.56 28.31 7.84 31.50 43.65 3.16 21.82 1.58 1.19 0.03 0.80 2.61 10.29
sda 1.98 24.75 419.80 6.93 13465.35 253.47 6732.67 126.73 32.15 2.00 4.70 2.00 85.25
sda 3.06 41.84 444.90 54.08 14204.08 2048.98 7102.04 1024.49 32.57 2.10 4.21 1.85 92.24
可以看到磁盘的平均响应时间<5ms,磁盘使用率>80。磁盘响应正常,但是已经很繁忙了。
如果想要对iostat检查多此,每次之间的间隔一定数量的秒数,这样就可以查看每几秒钟之内的io统计数 据,这对性能的测试才具有实际意义:
$> iostat -d
表示没量秒钟检查一次,一共检查三次
avg-cpu: %user %nice %sys %iowait %idle
4.55 0.00 0.63 0.26 94.56 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
cciss/c0d0 30.11 68.20 67.13
cciss/c0d0p1 0.00 0.00 0.00
cciss/c0d0p2 83.78 68.19 67.11
dm- 1.06 0.60 4.07
dm- 82.50 67.42 62.23
dm- 0.21 0.18 0.83
dm- 0.00 0.00 0.00 avg-cpu: %user %nice %sys %iowait %idle
0.00 0.00 0.63 0.00 99.37 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
cciss/c0d0 1.02 0.00 63.27
cciss/c0d0p1 0.00 0.00 0.00
cciss/c0d0p2 15.82 0.00 63.27
dm- 15.82 0.00 63.27
dm- 0.00 0.00 0.00
dm- 0.00 0.00 0.00
dm- 0.00 0.00 0.00 avg-cpu: %user %nice %sys %iowait %idle
0.00 0.00 0.32 0.00 99.68 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
cciss/c0d0 3.06 0.00 26.53
cciss/c0d0p1 0.00 0.00 0.00
cciss/c0d0p2 6.63 0.00 26.53
dm- 0.00 0.00 0.00
dm- 6.63 0.00 26.53
dm- 0.00 0.00 0.00
dm- 0.00 0.00 0.00
其中每一次的统计都是上 一次的统计时间到这次的统计时间之间的统计数据
Linux性能测试 iostat命令的更多相关文章
- [转帖]Linux性能测试 pmap命令
Linux性能测试 pmap命令 https://www.cnblogs.com/txw1958/archive/2012/07/26/linux-pmap.html 名称: pmap - ...
- Linux 安装iostat命令
首先跟你的Linux系统有关 我用的是Red hat系统 记录下最快的安装iostat命令的方式 起初想查看iostat, 提示 iostat: command not found 于是,通过yum ...
- Linux性能测试分析命令_sar+iostat+vmstat+top
sar主要用于收集并统计系统资源的信息,包括CPU.IO.内存.网卡流量等. vmstat命令主要是对操作系统的虚拟内存.进程.IO读写.CPU活动等整体情况进行统计.但是它不能对某个进程进行深入分析 ...
- Linux性能测试分析命令_top
top命令动态展示系统整体资源和各个进程资源占用状况,是Linux下常用的性能分析工具. top命令语法 使用格式:top [-] [d] [b] [H] [p] [q] [c] [C] [S] [s ...
- LINUX 笔记-iostat命令
显示CPU和I/O统计信息 iostat的不带参数的显示CPU和I/ O的所有分区的统计信息 -c Display the CPU utilization report. -d Display the ...
- linux下iostat命令详解
iostat用于输出CPU和磁盘I/O相关的统计信息 iostat语法 用法:iostat [ 选项 ] [ <时间间隔> [ <次数> ]] 常用选项说明: -c:只显示系统 ...
- Linux性能测试分析命令_vmstat
vmstat命令主要是对操作系统的虚拟内存.进程.IO读写.CPU活动等整体情况进行统计.但是它不能对某个进程进行深入分析. vmstat基本语法 命令使用格式:vmstat [options] [d ...
- Linux性能测试分析命令_iostat
iostat用于输出CPU和磁盘I/O相关的统计信息 iostat语法 用法:iostat [ 选项 ] [ <时间间隔> [ <次数> ]] 常用选项说明: -c:只显示系统 ...
- Linux性能测试 tcpdump命令
用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的“头” ...
随机推荐
- php 复制粘贴覆盖文件
<?php /** * 操纵文件类 * * 例子: * FileUtil::createDir('a/1/2/3'); 测试建立文件夹 建一个a/1/2/3文件夹 * FileUtil::cre ...
- Android开发中的小技巧
转自:http://blog.csdn.net/guxiao1201/article/details/40655661 简单介绍: startActivities (Intent[] intents) ...
- [CSS] Reduce Ambiguity in Class Names using a Naming Convention
A solid naming convention makes it less likely to run into naming conflicts and helps establish a se ...
- How to use ftp in a shell script
转载How to use ftp in a shell script How to use ftp in a shell script Bruce EdigerBruce Ediger's home ...
- VIM HML
D:\skill\Apps\Vim\vim80\defaults.vim "set scrolloff=5 设置为默认值0即可
- [CSS] Re-order the appearance of grid items using the order property
As with flex items, we can set an order value on grid items. Let’s see how this affects the DOM and ...
- 百度echarts可以做什么
百度echarts可以做什么 一.总结 一句话总结:可视化做的很好,各种图都有.而且支持动态数据. 二.百度eCharts体验 前言 从昨天开始给项目里添加一些图表对比功能,上一个项目里使用的是Hig ...
- mui监听多个下拉刷新当前处于哪个选项卡
1.滑动触发 <div id="slider" class="mui-slider mui-fullscreen"> <div id=&quo ...
- JVM源码系列:ThreadMXBean 打出堆栈信息原理分析
我们通常会使用工具jstack 去跟踪线程信息,其如何实现使用attach 的方式还是ptrace 的方式,这些可以去参考本人的博客的其他文章. 但这些方式都是外部使用的方式,如何直接使用java代码 ...
- 移动CMPP3.0接口
前段时间准备上线期,同事接了个联调CMPP3.0短信接口的任务,但是一直不成功,抽时间给解决了一下,记录下其中几个要点: 1.短信网关厂家需要提供参数: #网关IP地址 ismgIp=1.1.1.1# ...