首页 > 其他分享 >如何严谨地做性能测试

如何严谨地做性能测试

时间:2023-05-22 15:55:53浏览次数:42  
标签:严谨 性能 系统 响应 吞吐量 测试 CPU

性能测试应该怎么做?

一般来说,性能测试要统一考虑这么几个因素:Thoughput吞吐量,Latency响应时间,资源利用(CPU/MEM/IO/Bandwidth…),成功率,系统稳定性。

下面的这些性能测试的方式基本上来源自我的老老东家汤森路透,一家做real-time的金融数据系统的公司。

一,你得定义一个系统的响应时间latency,建议是TP99,以及成功率。比如路透的定义:99.9%的响应时间必需在1ms之内,平均响应时间在1ms以内,100%的请求成功。

二,在这个响应时间的限制下,找到最高的吞吐量。测试用的数据,需要有大中小各种尺寸的数据,并可以混合。最好使用生产线上的测试数据。

三,在这个吞吐量做Soak Test,比如:使用第二步测试得到的吞吐量连续7天的不间断的压测系统。然后收集CPU,内存,硬盘/网络IO,等指标,查看系统是否稳定,比如,CPU是平稳的,内存使用也是平稳的。那么,这个值就是系统的性能

四,找到系统的极限值。比如:在成功率100%的情况下(不考虑响应时间的长短),系统能坚持10分钟的吞吐量。

五,做Burst Test。用第二步得到的吞吐量执行5分钟,然后在第四步得到的极限值执行1分钟,再回到第二步的吞吐量执行5钟,再到第四步的权限值执行1分钟,如此往复个一段时间,比如2天。收集系统数据:CPU、内存、硬盘/网络IO等,观察他们的曲线,以及相应的响应时间,确保系统是稳定的。

六、低吞吐量和网络小包的测试。有时候,在低吞吐量的时候,可能会导致latency上升,比如TCP_NODELAY的参数没有开启会导致latency上升(详见TCP的那些事),而网络小包会导致带宽用不满也会导致性能上不去,所以,性能测试还需要根据实际情况有选择的测试一下这两咱场景。

(注:在路透,路透会用第二步得到的吞吐量乘以66.7%来做为系统的软报警线,80%做为系统的硬报警线,而极限值仅仅用来扛突发的peak)

是不是很繁锁?是的,只因为,这是工程,工程是一门科学,科学是严谨的。

标签:严谨,性能,系统,响应,吞吐量,测试,CPU
From: https://www.cnblogs.com/hangj/p/17420832.html

相关文章

  • APP自动化--pytest-把图片添加到测试报告中--(异常截图)
    前面在 APP自动化--pytest-把图片添加到测试报告中--(主动截图)中说明了extra.append(extras.image(driver1.get_screenshot_as_base64()))的用法,那么把它放到conftest的异常截图代码中就可以实现异常截图。importpytestfrompytest_htmlimportextras"""解决pytest-html......
  • 44 | 理解IO_WAIT:I/O性能到底是怎么回事儿?
    在专栏一开始的时候,我和你说过,在计算机组成原理这门课里面,很多设计的核心思路,都来源于性能。在前面讲解CPU的时候,相信你已经有了切身的感受了。第36讲讲解局部性原理的时候,我们一起看了通过把内存当作是缓存,来提升系统的整体性能。在第37讲然而,我们知道,并不......
  • 03 | 通过你的CPU主频,我们来谈谈“性能”究竟是什么?
    00:10讲述:徐文浩大小:11.62M时长:12:41我们常常挂在嘴边的“性能”到底指的是什么呢?我们能不能给性能下一个明确的定义,然后来进行准确的比较呢?学习和研究计算机组成原理,就是在理解计算机是怎么运作的,以及为什么要这么运作......
  • Linux 生成/查看/测试/应用 patch
    Linux生成/查看/测试/应用patch修改了开源代码后可以将差异保存为patch这样,随时可以打补丁。下面以u-boot开源代码为例,说明patch的常用方法。设开源软件包u-boot.zip解压为u-boot,而u-boot-changed是用户修改后代码。生成patchdiff-Naurp./u-boot./u-boot-ch......
  • 测试局域网两台机器的之间的最大带宽
    工具下载:https://iperf.fr/iperf-download.php 测试环境:服务端(CentOS7):1、快速安装wget-O/usr/lib/libiperf.so.0https://iperf.fr/download/ubuntu/libiperf.so.0_3.1.3wget-O/usr/bin/iperf3https://iperf.fr/download/ubuntu/iperf3_3.1.3chmod+x/usr/bin/iperf32......
  • 如何列举测试点
    测试人员需要能够在软件开发过程中,基于软件的需求文档或者功能说明书,准确的识别和描述每一个功能点。列举功能点是测试人员的必备技能之一,因为测试人员需要从功能的角度来评估软件的质量,以确保软件的功能符合用户的期望和需求。通过列举功能点,测试人员可以更好地了解软件的功能,从......
  • java使用阿里云oss上传文件测试案例+上传策略包装类
    产品文档地址:https://help.aliyun.com/product/31815.html产品购买地址:https://www.aliyun.com/search?scene=all&k=oss在官网首先购买产品,开通oss服务后进入控制台:在https://developer.aliyun.com/ask/2061查看相关的endpoint地址(找到自己所在的区域)在控制台https://oss.c......
  • knife4j配置swagger接口测试
    导入依赖1<dependency>2<groupId>com.github.xiaoymin</groupId>3<artifactId>knife4j-spring-boot-starter</artifactId>4<version>3.0.3</version>5......
  • 取名算法之用JAVA实现姓名测试
    一文中我谈到了名字的重要性。 作为易学高手的我(大师♂罗莊)对告诉各位码农如何制作取名系统 负有不可推卸的责任。 本次课程没有什么难度,就是根据名字笔画来计算天地人三才格 笔画的五行算法已经在上一讲说过,就是去十位数,个位来判断五行 取名算法之用JAVA实现汉字五......
  • 【CPP0040】list应用测试
    应用STL中的list完成功能测试。设计要求: 定义一个空的list,将用户输入的数组a[10]的10个数插入到list中,在list头部插入数b,用迭代器遍历list并输出其中的元素值。然后将list从大到小排序,删除list尾部的元素,用迭代器遍历list并输出其中的元素值。最后将list清空。#include<iostr......