​性能测试案例:磁盘IO繁忙

发表于:2019-10-15 17:52

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:全栈测试笔记    来源:全栈测试笔记

分享:
  今天分享的压测案例是磁盘IO繁忙的问题。
  问题描述:
  压测过程中,tps上不去,监控各个服务器cpu、内存、磁盘、网络等等,最终发现是数据库服务器磁盘IO繁忙(命令:iostat -x -k 1),sdb已饱和到达瓶颈点了。如下图(只截了一小部分图):
  关于磁盘io,我们主要关注以下几个指标:
  %iowait:I/O等待所占CPU时间百分比,iowait较大说明IO负载大,IO等待比较严重,磁盘读写遇到瓶颈
  r/s:每秒完成的读 I/O 设备次数
  w/s:每秒完成的写 I/O 设备次数
  rkB/s:每秒读K字节数
  wkB/s:每秒写K字节数
  avgqu-sz:平均I/O队列长度,向设备发出的请求平均数量。如果这个数值大于1,可能是硬件设备已经饱和
  await:平均每次设备I/O操作的时间 (毫秒)
  svctm:平均每次设备I/O操作的服务时间 (毫秒)
  %util:磁盘设备利用率,一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O队列是非空的,接近100%说明设备能力趋于饱和
  分析总结:
  结合上图及关注指标可知,sdb已经达到饱和(sdb表示第二块磁盘),IO不到20,说明其IO能力很差(r/s,w/s),还不到100就满了,连普通台式机7200转硬盘都赶不上,普通的单个硬盘都100左右,可以按这个公式来计算:1000/(30000/rpm +5),如果是7200RPM,1000ms/9.17ms=109IOPS,1秒钟可以109次IO。
  上面公式是我查阅各种资料总结的,如果想了解详细推导过程,可以关注公众号联系我。
  另外,读写效率低,传输率肯定上不去,所以每秒传输的数据量也很小(rkB/s,wkB/s) 。
  经和运维确认得知:磁盘没有限制,因为是虚拟化,且底层的资源已经用满了,导致只能到这么多。
  增加资源后复测,磁盘IO趋于正常,tps上升,最终达到测试目标。

     本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号