首页 > 其他分享 >性能测试-分析磁盘瓶颈

性能测试-分析磁盘瓶颈

时间:2023-05-27 12:55:23浏览次数:33  
标签:测试 瓶颈 await 每秒 svctm IO 磁盘 cpu

  1. iostat查看磁盘IO使用情况
分析磁盘IO的性能,看读写性能,延迟和吞吐量等 iostat 参数: -c:仅显示cpu统计信息,与-d互斥 -d:仅显示磁盘统计信息,与-c互斥 -k:以KB单位显示,默认选项 -m:以MB单位显示 iostat -k 2 5

 

avg-cpu:总体cpu的使用情况,如果是多核cpu,显示就是所有cpu的平均值
  • %user:用户空间占用cpu百分比
  • %nice:用户进程空间内改变过优先级的进程占用cpu百分比
  • %system:内核空间占用cpu百分比
  • %iowait:io等待占用百分比
  • %steal:虚拟机占用百分比
  • %idle:空闲百分比
Device:各磁盘设备的IO统计信息
  • tps:每秒IO次数
  • KB_read/s:每秒从设备读取的数据量
  • KB_wrtn/s:每秒向设备写入的数据量
  • KB_read:读取的总数据量
  • KB_wrtn:写入的总数据量
  iostat -x

  • rrqm/s:每秒进行merge的读操作数目
  • wrqm/s:每秒进行merge的写操作数目
  • r/s:每秒完成的读IO设备次数
  • w/s:每秒完成的写IO设备次数
  • rsec/s:每秒读扇区数 每个扇区大小为512字节
  • wsec/s:每秒写扇区数
  • rKB/s:每秒读KB数,是rsec/s的一半
  • wKB/s:每秒写KB数,是wsec/s的一半
  • avgrq-sz:平均每次设备IO操作的数据大小(扇区)
  • avgqu-sz:平均IO队列长度
  • await:平均每次设备IO操作的等待时间(毫秒)
  • r_await:平均每次设备IO读操作的等待时间(毫秒)
  • w_await:平均每次设备IO写操作的等待时间(毫秒)
  • svctm:平均每次设备IO操作的服务时间,svctm越接近await则说明等待时间少
  • %util:一秒钟有百分之多少的时间用于IO操作
  分析: 重点指标:%iowait,%idle,r/s,w/s,avgqu-sz,await,svctm,%util
  1. 如果%util很大,超过80%,表示设备很繁忙
  2. await的大小一般取决于服务时间(svctm)和I/O队列的长度以及I/O请求的发出模式,如果await和svctm比较接近,则说明几乎没有等待时间
await一般大于 svctm(因为同时等待的请求的等待时间会被重复计算)svctm的大小一般和磁盘性能有关系,CPU/内存的负荷也会对其影响,请求过多也会导致svcrm增加 但是如果await远大于svctm,说明I/O队列太长(avgqu-sz是不是比较大),响应时间会变慢,如果响应时间超过了允许的范围,可以考虑更换磁盘,调整内核算法,优化应用,或者升级CPU
  1. r/s和w/s大,说明IO读写次数频繁
  2. %iowait表示cpu没在工作而在等待io的时间占比 
一般%iowait过高,表示磁盘存在I/O瓶颈 不一定%iowait大就是磁盘存在瓶颈,如果cpu高速运转的情况下也可能出现%iowait高 iowait% <20%      良好 iowait% <35%      一般 iowait% >50% ??看下cpu高不高
  1. 如果%idle高,表示cpu空闲,但是响应时间却又比较慢,则可能是cpu等待分配内存,此时应加大内存。如果%idle持续低于10%,则表示cpu处理能力低,需要解决的资源是cpu

 

  1. 确认磁盘IO的来源,哪些进程在使用磁盘IO
iotop 参数: -o:只显示有io操作的进程 -b:批量显示,无交互,主要用作记录到文件 -n NUM:显示NUM次,用于非交互模式 -d SEC:间隔SEC秒显示一次 -p PID:要监控的进程pid -u USER:监控的进程用户 iotop -o

 

第一部分
  • Total DISK READ 和Total DISK WRITE :进程和内核线程/内核块设备子系统之间的总的读写带宽
  • Actual DISK READ和Actual DISK WRITE:内核块设备子系统和下面硬件(HDD、SSD)对应的的实际磁盘IO带宽
第二部分
  • TID:线程号或进程号
  • PRIO:线程运行时的I/O优先级 be/3:be(best effort)表示普通级别 优先级为3
  • USER:进程所属用户
  • DISK READ:刷新时间间隔内读取数据量
  • DISK WRITE:刷新时间间隔内写入数据量
  • SWAPIN:每个进程的交换使用率
  • IO:每个进程的I/O使用率,包括磁盘和交换
  • COMMAND:进程名

标签:测试,瓶颈,await,每秒,svctm,IO,磁盘,cpu
From: https://www.cnblogs.com/ttwx/p/17436588.html

相关文章

  • 性能测试-分析内存瓶颈
    top或者free查看内存利用率看used的值有没有很高(一般持续超过70%就会认为可能有瓶颈)看buff/cache的值,通常情况比较大不是什么问题,如果系统需要更多内存时,buff/cache就会自动释放,但是如果占用了大量内存导致系统无法分配足够的内存给其他进程使用,就需要再分析和优化 top......
  • 报文常用测试工具-----IPOP V4.1
    摘自:https://blog.csdn.net/weixin_40013461/article/details/126368274下载地址:http://y.downyagt.com:7658/down4/hwipgj_downyi.com.zip1.1、IPOP简介IPOP软件是一个华为IP工具的集合,最原始的功能是IP地址动态绑定,后续在此基础上不断的进行了扩充,就形成了现在的版本。IPOP是......
  • HPL测试的配置(依赖于BLAS),通过OpenMpi进行实现
    1.1虚拟机的配置1.1.1Linux光盘映像文件由于对于Ubuntu系统更为熟悉,所以选择了最新版的Ubuntu系统作为Linux发行版。1.1.2Hypervisor由于之前一直使用VMware,对其中操作熟悉,因此选择VMware作为Hypervisor1.2搭建集群并安装相关程序1.2.1创建虚拟机以上为虚拟......
  • 软件测试职业生涯需要编写的全套文档模板,收藏这一篇就够了(附文档模板及视频)~
    作为一名测试工程师,在整个的职业生涯中,会涉及到各种不同类型的文档编写,大体包括如下:对应文档模板及文档编写视频如下:  一、测试岗位必备的文档在一个常规的软件测试流程中,会涉及到测试计划、测试方案、测试用例、测试报告的编写,这些文档也是软件测试岗位必须掌握的文档类......
  • 自动化测试-基础知识—Bash基础
    Bash在Bash中,美元符号$可以用于引用变量或者表达式的值。Bash中的变量并不需要事先声明,而是在第一次赋值时自动创建。基于这个特性,我们可以通过给变量名加上$的方式来引用它的值,比如$var表示引用变量var的值。在Bash中,使用$还有其他一些常见的用法,例如:$0:表示执......
  • 野火RA6M5开发板 DHT11温湿度传感器 OLED显示测试学习
    野火RA6M5开发板DHT11温湿度传感器OLED显示测试学习DHT11温湿度传感器DHT11是一款有已校准数字信号输出的温湿度传感器。精度湿度+-5%RH,温度+-2℃,量程湿度20-90%RH,温度0~50℃。更多DHT11信息请参考:https://baike.sogou.com/v73984313.htm?fromTitle=DHT11下图为DHT11的引......
  • 绘制RUL预测中的测试引擎预测表现
    下图为C-MAPSS的4个数据子集测试集的所有发动机引擎的真实RUL与估计的RUL表现,并按照真实RUL值的大小从小到大排列。#导出预测rul和真实rul,pred为预测函数,model为训练后的NN模型pred_rul,real_rul=pred(model,test_iter)#将pred_rul和real_rul拼接,以方便进行排序rul......
  • 自动化测试-基础知识—Bash基础
    Bash在Bash中,美元符号$可以用于引用变量或者表达式的值。Bash中的变量并不需要事先声明,而是在第一次赋值时自动创建。基于这个特性,我们可以通过给变量名加上$的方式来引用它的值,比如$var表示引用变量var的值。在Bash中,使用$还有其他一些常见的用法,例如:$0:表示执......
  • 利用函数模板解决双倍功能 利用类模板解决绝对值功能 vector应用测试
    请使用模板参数设计实现双倍功能函数,函数功能要求实现返回值为输入参数的两倍,函数参数应能适应整型、浮点型、双精度型等各种类型,返回值类型与参数一样。裁判测试程序样例: #include<iostream>usingnamespacestd;/*请在这里填写答案*/intmain(void){charc='\0';......
  • 软件测试学习路线
    1.功能测试用例,测试流程。测试报告,jira,测试项目(app和web)2.web测试:F12调试查看接口请求响应3.app测试:adb、monkey测试,fiddle抓包,性能、安全测试4.接口自动化:postman、jmeter性能测试5.mysql、linux6.appuim、selenium7.加测试项目......