当前位置: 首页 > news >正文

如何做好服务性能测试

一、什么是性能测试

新功能上线或切换底层数据库或扩容调优,根据实际业务场景的需要,做必要的性能压测,收集性能数据,作为上线的基准报告。

性能测试一般分一下几个阶段:

1. 性能测试

     并发量小(jmeter 并发线程几十个,可以选择 10 个线程),系统各资源使用率低,接口响应时间端,系统整体吞吐低。

2. 负载测试

 并发量适中,系统各资源已趋于高负载,持续观察接口的吞吐量、各资源的负载情况。通过对比个资源负载,寻找性能瓶颈。

举几个例子:

a. 如果 ECS 负载较高,但是数据库负载较低:

可能的原因:

i. 数据库连接池配置的连接数较小,大流量还没到数据库

ii. 各种连接池,比如数据库的、http 连接池等,及 dubbo 线程池大小。

3. 压力测试

做压力测试的目的,主要是观察接口在瞬时大流量过来的情况,接口各性能指标的变化,来判断接口后端服务及依赖的各中间件是否能承受的住。

二、性能相关的术语

1、事务

用户发送请求->服务器接口请求->服务器从数据库或其他三方服务获取数据->生成服务返回结果->返回用户

2、并发数

系统同时处理的 Request 数

3、响应时间

客户端从发出请求到接收到响应总的耗时时间。

QPS(TPS)

4、系统每秒处理的 Query/Transcation Request 数

QPS(TPS)=并发数/响应时间

1000/s =并发数/0.2s ===》并发数=800  

2000/s =并发数/0.5s ===》并发数= 1000

三、影响性能压测的因素

1. 压测客户端的并发能力

2. 应用系统

a. 池化资源:http connection pool / db connection pool / rabbion

b. 交互数据的大小

c. 逻辑:串行逻辑

3. 数据库 

4. 中间件:redis/kafka 规格及应用使用的参数

三、如何寻找性能瓶颈

1. 首先,要清楚请求链路。从压测机上发出到响应,请求处理需要经过或依赖哪些服务或中间件(同下文的环节,方便描述),所以链路上各每个环节都可能会成为性能瓶颈点。比如请求接口是走域名访问,势必会经过 nginx 转发,那么 nginx 也可能会成为性能瓶颈点。

2. 要清楚整条链路上各环节资源配置。做好链路上各环节的资源的监控,方便及时发现问题。

3. 寻找性能瓶颈,应先从整体到局部排查。首先观察链路上各环节的负载情况,如果发现其中一个环节及之后的环节负载都很低,那么应该是上游领近的节点处理慢了,此时应该重点分析处理慢的节点。待整个链路的各资源(服务器、数据库或其他中间件)的负载上来了,就需要调整环节内部的参数,比如数据库连接池、http 连接池、dubbo 线程池及队列等参数,寻找最优参数值。

四、性能优化措施

性能测试的目的是为了解系统的性能以此评估上线部署时所需要多大资源才能满足业务需求。在调测的过程中,寻找性能瓶颈,发现性能问题,结合业务场景做优化。

1. 读少写多的数据,接受延迟查询的数据,可以考虑异步写入。

2. 优化各连接池及队列的大小

参考:如何做好性能压测丨压测环境设计和搭建

 https://baijiahao.baidu.com/s?id=1690639698157730947&wfr=spider&for=pc

http://www.lryc.cn/news/131754.html

相关文章:

  • 速通蓝桥杯嵌入式省一教程:(五)用按键和屏幕实现嵌入式交互系统
  • 虚拟拍摄,如何用stable diffusion制作自己的形象照?
  • 开启AI创新之旅!“华为云杯”2023人工智能应用创新大赛等你来挑战
  • npm和node版本升级教程
  • C++入门篇9---list
  • STM32基于CubeIDE和HAL库 基础入门学习笔记:物联网项目开发流程和思路
  • Hive on Spark (1)
  • PostgreSQL基本操作总结
  • Jakarta 的 Servlet 下BeanUtils的日期处理 和JSTL 的使用
  • 聚焦电力行业CentOS迁移,麒麟信安受邀参加第六届电力信息通信新技术大会暨数字化发展论坛并发表主题演讲
  • 华为OD真题--分月饼--带答案
  • 帆软大屏2.0企业制作
  • 【学习笔记之opcua】使用Python获取opcua数据
  • apache doris和StarRocks的区别
  • 文心一言最新重磅发布!
  • css整体使用
  • LeetCode1578. 使绳子变成彩色的最短时间
  • 如何在机器学习中实现分类?
  • 华为网络篇 RIP的负载均衡-29
  • 前端面试的性能优化部分(10)每天10个小知识点
  • 分类预测 | MATLAB实现S4VM半监督支持向量机二分类预测
  • maven -pl -am -amd
  • 高效解决Anaconda Prompt报错Did not find VSINSTALLDIR这类问题
  • 将iPhone备份到移动硬盘
  • 找工作 相关资料
  • 罗勇军 → 《算法竞赛·快冲300题》每日一题:“排列变换” ← 贪心算法
  • 算法修炼Day51|● 309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费
  • LVS-DR模型实例
  • Vue面试题
  • 使用图像处理算法检测金属表面的生锈区域: Python实现及步骤解析