前言

在之前的博客中我们详细的说明了性能瓶颈的解决思路,也详细介绍了Vmstat的使用,今天我们就详细说说磁盘IO的那些事,磁盘IO是我们最常遇到的瓶颈,下面我们根据iostat详细聊聊磁盘IO

一、磁盘IO性能指标

1.1、每秒IO数(tps)

对于磁盘来说,一次磁盘的连续读或者连续写称为一次磁盘 I/O, 磁盘的 IOPS 就是每秒磁盘连续读次数和连续写次数之和

1.2、吞吐量( Throughput)

指硬盘传输数据流的速度,传输数据为读出数据和写入数据的和。其单位一般为 Kbps, MB/s 等。

1.3、磁盘活动时间百分比( Utilization) %util

磁盘处于活动时间的百分比,即磁盘利用率,磁盘在数据传输和处理命令(如寻道)处于活动状态。磁盘利用率与资源争用程度成正比,与性能成反比。也就是说磁盘利用率越高,资源争用就越严重,性能也就越差,响应时间就越长。一般来说,如果磁盘利用率超过 70%,应用进程将花费较长的时间等待 I/O 完成,因为绝大多数进程在等待过程中将被阻塞或休眠。

1.4、服务时间( ServiceTime) svctm

指磁盘读或写操作执行的时间,包括寻道,旋转时延,和数据传输等时间。其大小一般和磁盘性能有关, CPU/内存的负荷也会对其有影响,请求过多也会间接导致服务时间的增加。如果该值持续超过20ms,一般可考虑会对上层应用产生影响。

1.5、I/O 等待队列长度( Queue Length)

指待处理的 I/O 请求的数目,如果 I/O 请求压力持续超出磁盘处理能力,该值将增加。如果单块磁盘的队列长度持续超过2,一般认为该磁盘存在I/O性能问题。需要注意的是,如果该磁盘为磁盘阵列虚拟的逻辑驱动器,需要再将该值除以组成这个逻辑驱动器的实际物理磁盘数目,以获得平均单块硬盘的 I/O 等待队列长度。

1.6、等待时间( Wait Time)

指磁盘读或写操作等待执行的时间,即在队列中排队的时间。如果I/O请求持续超出磁盘处理能力,意味着来不及处理的 I/O 请求不得不在队列中等待较长时间。

二、Iostat详解

2.1、安装iostat命令1yum install sysstat  -y

2.2、iostat参数详解1

2

3

4

5

6

7[root@tshare365 ~]# iostat  --help

Usage: iostat [ options ] [  [  ] ]

Options are:

[ -c ] [ -d ] [ -N ] [ -n ] [ -h ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ]

[ -j { ID | LABEL | PATH | UUID | ... } [  [...] | ALL ] ]

[  [...] | ALL ] [ -p [  [,...] | ALL ] ]

[root@tshare365 ~]#

我们最常用的是

-C 显示CPU使用情况

-d 显示磁盘使用情况

-x 显示详细信息

-k 以 KB 为单位显示

-m 以 M 为单位显示

2.3、iostat查看服务器IO情况1

2

3

4

5

6

7

8

9

10

11

12

13[root@tshare365 ~]# iostat  -x

Linux 2.6.32-431.el6.x86_64 (tshare365)  02/26/2015     _x86_64_    (1 CPU)

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

0.03    0.00    0.15    0.04    0.00   99.78

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util

sda               0.21     3.06    0.06    0.22     5.05    26.32   113.45     0.01   48.50   4.05   0.11

scd0              0.00     0.00    0.00    0.00     0.00     0.00     8.00     0.00    0.88   0.88   0.00

dm-0              0.00     0.00    0.26    3.28     4.95    26.32     8.84     1.35  382.60   0.31   0.11

dm-1              0.00     0.00    0.00    0.00     0.03     0.00     8.00     0.00    5.88   1.29   0.00

[root@tshare365 ~]#

cpu属性值说明:%user:CPU处在用户模式下的时间百分比。

%nice:CPU处在带NICE值的用户模式下的时间百分比。

%system:CPU处在系统模式下的时间百分比。

%iowait:CPU等待输入输出完成时间的百分比。

%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。

%idle:CPU空闲时间百分比。

备注:如果%iowait的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。

disk属性值说明:rrqm/s:  每秒进行 merge 的读操作数目。即 rmerge/s

wrqm/s:  每秒进行 merge 的写操作数目。即 wmerge/s

r/s:  每秒完成的读 I/O 设备次数。即 rio/s

w/s:  每秒完成的写 I/O 设备次数。即 wio/s

rsec/s:  每秒读扇区数。即 rsect/s

wsec/s:  每秒写扇区数。即 wsect/s

rkB/s:  每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。

wkB/s:  每秒写K字节数。是 wsect/s 的一半。

avgrq-sz:  平均每次设备I/O操作的数据大小 (扇区)。

avgqu-sz:  平均I/O队列长度。

await:  平均每次设备I/O操作的等待时间 (毫秒)。

svctm: 平均每次设备I/O操作的服务时间 (毫秒)。

%util:  一秒中有百分之多少的时间用于 I/O 操作,即被io消耗的cpu百分比

备注:如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明I/O 队列太长,IO响应太慢,则需要进行必要优化。如果avgqu-sz比较大,也表示有当前IO在等待。

2.4、查看磁盘的吞吐量1

2

3

4

5

6

7

8

9

10[root@tshare365 ~]# iostat  -d -k

Linux 2.6.32-431.el6.x86_64 (tshare365)  02/26/2015     _x86_64_    (1 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn

sda               0.28         2.51        13.07     214679    1119426

scd0              0.00         0.00         0.00        132          0

dm-0              3.51         2.46        13.07     210381    1119388

dm-1              0.00         0.01         0.00       1188          0

[root@tshare365 ~]#

tps:该设备每秒的传输次数

kB_read/s:每秒从设备(drive expressed)读取的数据量;

kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;

kB_read:读取的总数据量;

kB_wrtn:写入的总数量数据量;

本博客至此介绍,如有什么问题请留言!

linux 性能测试iostat,Linux性能分析之二(iostat)相关推荐

  1. Linux内核--网络栈实现分析(二)--数据包的传递过程--转

    转载地址http://blog.csdn.net/yming0221/article/details/7492423 作者:闫明 本文分析基于Linux Kernel 1.2.13 注:标题中的&qu ...

  2. linux 解析pdf下载工具,Linux高级系统级性能分析工具-perf.pdf

    Linux高级系统级性能分析工具-perf Linux 的系统级性能剖析工具‐perf (二) 承刚 TAOBAO  Kernel Team chenggang.qin@ 第三章  Perf top ...

  3. Linux系统下常见性能分析工具的使用

    在前面的文章中,我简单介绍了影响linux性能的几个方面以及如何解决这些方面的问题,但是如何才能从系统上发现是某个方面或某几个方面出现问题了呢,这就需要使用linux系统提供的几个常用性能分析工具,下 ...

  4. linux 性能教程,Linux系统下常见性能分析工具的使用

    在前面的文章中,我简单介绍了影响linux性能的几个方面以及如何解决这些方面的问题,但是如何才能从系统上发现是某个方面或某几个方面出现问题了呢,这就需要使用linux系统提供的几个常用性能分析工具,下 ...

  5. 分析linux系统的运行性能,Linux系统下常见性能分析工具的使用

    在前面的文章中,我简单介绍了影响linux性能的几个方面以及如何解决这些方面的问题,但是如何才能从系统上发现是某个方面或某几个方面出现问题了呢,这就需要使用linux系统提供的几个常用性能分析工具,下 ...

  6. 【虫师--系列20】性能测试知多少---性能分析与调优的原理

    转自: http://www.cnblogs.com/fnng/archive/2013/03/19/2970315.html   作者:虫师 最近一直纠结性能分析与调优如何下手,先从硬件开始,还是先 ...

  7. php性能测试xhprof,PHP性能分析之Xhprof的使用

    上一节介绍了<PHP性能分析之Xhprof的安装>(点击查看详情). 这一节来介绍下Xhprof的具体使用. Xhprof的使用方式,直接贴示例代码,如下: //在代码的开头处添加启动&q ...

  8. Linux内核--网络栈实现分析(二)--数据包的传递过程(上)

    本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7492423 更多请看专栏,地址 ...

  9. LINUX SPI设备驱动模型分析之二 SPI总线模块分析

    上一篇文章我们简要介绍了SPI驱动模块,本章我们详细说明一下spi总线.设备.驱动模块的注册.注销以及这几个模块之间的关联. SPI总线的注册 spi模块也是基于LINUX设备-总线-驱动模型进行开发 ...

最新文章

  1. 为NLP从业者/研究生/研究员专门定制的全网唯一高端NLP训练营
  2. Linux内核网络栈1.2.13-route.c概述
  3. BTC 再陷横荒之力,BCH 或成破局良器
  4. c#)Excel常用格式操作
  5. 如何使用区块链技术进行项目开发
  6. java 生成水印,Java 用html模板生成 Pdf 加水印
  7. iOS 使用Touch ID 校验[新增 iOS9 三种错误]
  8. bootstrap样式代码案例
  9. api restful_HATEOAS的RESTful服务。 记录超媒体API
  10. matlab中多边形滤波器,几种常见空间滤波器MATLAB实现
  11. 【今日CV 视觉论文速览】 04 Dec 2018
  12. jpa使用注解传递对象_注解(下)
  13. Win10电脑定时关机无效怎么办
  14. 阿里2018校招编程题
  15. 会员制营销与EMAIL营销
  16. 软件测试——风险分析
  17. 解决selenium自动关闭浏览器
  18. Python3 flags
  19. 硬盘IDE、SATA、AHCI模式的区别
  20. keras指定gpu_keras-gpu的安装与配置

热门文章

  1. RSA openssl_public_encrypt false
  2. Java概览(java语言编程艺术笔记)
  3. Dijkstrala算法
  4. [区块链与密码学][王小云院士][部分PPT][20200507]
  5. 前端基础3-1——JavaScript
  6. centos删除文件夹_等保测评主机安全之centos密码长度
  7. 用python模拟评委打分_用vb 编写一个评委打分的程序1. 编写一个评委打分的程序,实现以下功能:a) 单击“评委给分”按钮时弹出InputBo...
  8. Ubuntu 14.04 为 root 帐号开启 SSH 登录
  9. 一个网络资深者发起的思考
  10. 像postman上传文件_90%的测试工程师是这样使用Postman做接口测试的……