美文网首页DevOps/SRE
性能分析--磁盘IO

性能分析--磁盘IO

作者: beipiao | 来源:发表于2019-02-02 09:46 被阅读0次

iostat命令产生三类数据报表: cpu使用率、设备使用率、网络文件系统使用。下面先看一下前面两个数据指标的定义,以及如何帮助性能调优上发现问题点。

CPU使用率:

%user, 用户态的代码cpu执行时间占比

%nice, 带有nice优先级的用户态代码cpu使用时间占比

%system,内核态代码cpu使用占比

%iowait, 等待外部io的过程中,cpu空闲的时间占比

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

%idle,cpu空闲时间占比

设备使用率:

tps, transfer per second,每秒io 请求个数

blk_read/s 每秒读的block的个数

blk_wrtn/s,每秒写的block的个数

blk_read,总共的读的block的个数

blk_wrtn,总共的写的block的个数

kb_read/s,每秒读的kb个数

kb_wrtn/s,每秒写的kb个数

mb_read/s,每秒读的mb个数

mb_wrtn/s每秒写的mb个数

mb_read,总共读的mb个数

mb_wrtn,总共写的mb个数

rrqm/s,read request mereded were queue , 每秒排队的合并的读请求

wrqm/s,每秒排队的合并的写请求

r/s,每秒发布的读请求

w/s,每秒发布的写请求

rsec/s,每秒读的扇区的个数

wsec/s,每秒写的扇区的个数

rKb/s,每秒读的kb

wKb/s,每秒写的kb

avgrq-sz,发布的请求的平均大小,以扇区为单位

avggqu-sz,发布的请求的平均队列大小

await,平均io的时间,包括在队列中的时间,和实际执行的时间

utils,设备利用率,如果接近100,说明设备负载饱和

案例1

      上面这个案例,查看是磁盘sda的性能情况。io写的指标w_await,平均耗时6ms,读平均耗时是5.33ms,磁盘使用率是1.04%,对于5200转速的硬盘来讲,这个性能数据看起来还可以。但是有一个地方有问题:cpu花在内核执行时间占比居然达到37.89%,超过用户占比23.45%。如果该机器上,还有别的程序在做io的事情,也许还可理解,但是如果只有被监测的目标程序一个,可能需要分析原因了。

    有两个指标也可能提供了一些线索,w/s, wrqm/s,每秒写的请求个数和每秒进入写队列的请求个数。相对于wMB/s的0.14,每秒写0.14MB,但是io写的还是慢了。刚才提了,如果硬盘是5200转速的话,且有w_await佐证,单次io执行的速度并不慢,所以得需要看一下应用程序是如何进行io的。比如如果应用程序从用户态copy到内核态,然后再进行真正io,或者在内核态做了很多事情,都有可能导致这样的情况。

案例2:

    从这个图中,我们可以看到,磁盘使用率是饱和状态,达到了100%,写的平均耗时超过了871ms,队列中io请求个数超过1010,每秒写81M的数据。因为磁盘负荷饱和,io执行时间过长,导致CPU因为等待io而空闲,空闲时间占比超过了47.89%。为了改善性能,需要从应用程序层面想办法降低IO的数据量,比如数据缓存在内存里(如page cache)、后台异步方式落盘等等策略。

小结

    对于io密集型的应用或者任务,需要密切关注io操作对性能的影响。掌握iostat,理解背后的指标意义,针对不同的类型的IO性能问题,进行分析,对症下药找到不同的解决方案。

相关文章

  • 性能分析--磁盘IO

    iostat命令产生三类数据报表: cpu使用率、设备使用率、网络文件系统使用。下面先看一下前面两个数据指标的定义...

  • 跟踪IO请求

    1 目的 跟踪IO请求,分析磁盘读写性能瓶颈 2 工具 2.1 磁盘 geometry 2.2 读写请求 打开裸块...

  • Linux IO 问题分析利器--iostat

    在排查分析io问题时,可以使用iostat查看磁盘的IO性能状态数据。在排查分析io问题时,可以使用iostat查...

  • JavaWeb之四——IO调优

    磁盘IO调优 网络I/O调优 磁盘IO调优 性能检测 注: IO wait= (cpu idle time)/(a...

  • 基于sar分析磁盘IO性能

    #refer:http://lovesoo.org/linux-sar-command-detailed.html...

  • 2018-11-05

    10.6监控io性能 iostat -x 磁盘使用 iotop 磁盘使用 yum install -y sysst...

  • 监控io性能、free、ps、查看网络状态和linux抓包工具

    监控io性能、free、ps、查看网络状态和linux抓包工具 一、监控io性能 1、iostat -x 磁盘使用...

  • 关于磁盘io性能

    计算机主要由CPU、总线、I/O设备、内存、硬盘等组成,见下图: cpu由控制器(CU)和运算器(ALU)组成,相...

  • 索引原理学习

    (非原创,整理得)数据库的数据都放在磁盘上,磁盘IO是非常消耗性能的; 磁盘预读 每一次IO读取的数据我们称之为一...

  • 2018-10-24

    10月24日任务 10.6监控io性能 查看磁盘的状况的非常重要的指标 b 或者 wa列 压力大,磁盘有瓶颈 io...

网友评论

    本文标题:性能分析--磁盘IO

    本文链接:https://www.haomeiwen.com/subject/xgxssqtx.html