前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >性能分析之分析决策树2

性能分析之分析决策树2

作者头像
高楼Zee
发布2019-12-10 12:17:21
6050
发布2019-12-10 12:17:21
举报
文章被收录于专栏:7DGroup7DGroup7DGroup

背景

初学者对性能分析是个《横看成岭侧成峰,远近高低各不同。不识庐山真面目,只缘身在此山中。》那么应该怎么学习才能建立起自己的知识体系,才能做到《千山同一月,万户尽皆春。千江有水千江月,万里无云万里天》今天咱们谈谈7DGroup创始人高楼老师的性能分析之决策树分析法二。

分析树图一

第一层是业务指标,

  • 响应时间
  • TPS
  • 错误率

第二层是操作系统

  • CPU
  • IO
  • MEM
  • NET

分析

在这一层咱们主要关注IO ,既然是关注IO,如果IO高应该怎么去分析?怎么定位?

1、在linux操作系统中IO分析法最常见的命令是iostat

iostat -d -x -k 1 10

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

输出信息的含义:

  • rsec/s:每秒读取的扇区数;
  • wsec/:每秒写入的扇区数。
  • avgrq-sz 平均请求扇区的大小
  • avgqu-sz 是平均请求队列的长度。毫无疑问,队列长度越短越好。
  • await:每一个IO请求的处理的平均时间(单位是微秒毫秒)。这里可以理解为IO的响应时间,一般系统IO响应时间应该低于5ms,如果大于10ms就比较大了。这个时间包括了队列时间和服务时间,也就是说,一般情况下,await大于svctm,它们的差值越小,则说明队列时间越短,反之差值越大,队列时间越长,说明系统出了问题。
  • svctm 表示平均每次设备I/O操作的服务时间(以毫秒为单位)。如果svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,如果await的值远高于svctm的值,则表示I/O队列等待太长,系统上运行的应用程序将变慢。
  • %util:在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。

主要关注参数参考

  • util:
  • avgqu-sz
  • await:
  • svtm
  • util

IO瓶颈的症状

  • %util 很高
  • await 远大于svctm
  • avgqu-sz比较大
  • cpu > wa 过大 (参考值 超过20)
  • system > bi&bo 过大(参考值 超过 2000)

总结:

《楞严经》中云“理则顿悟,乘悟并销;事非顿除,因次第尽”,简单来说就是道理明白,但事情还需要一件一件的去做,咱们工作与生活也是这样,道理明白,但事情还得一件一件去做,想做好性能测试就得一个组件一个组件去了解,明白每个组件属性,高老师经典一句:“看到指标下一步做什么???”后面的知识沉淀不是一朝一夕的事情。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 7DGroup 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
    • 分析树图一
      • 第一层是业务指标,
      • 第二层是操作系统
    • 分析
      • 主要关注参数参考
    • IO瓶颈的症状
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档