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

【服务端性能测试】性能测试策略如何做

一、需求收集

先需要确认本次测试目的是什么,然后再看我们需要用什么参数来判断这个目的是否能够达成。

1.1 业务性能指标参考:

TPS、QPS、RT、请求成功率(一般请求成功率>=99.99%)

1.2 硬件性能指标参考:

即服务端资源耗用指标,常规的资源监控指标有:CPU使用率、Memory使用率、系统IO、网络IO等。

二、性能测试策略(参考)

基于不同的目的,我们的测试策略选择是各不相同的,此处列举了一些比较常见的,各位可以参考一下~

2.1 并发测试

模拟客户端请求,在单位时间内(S)同时发起一定量的请求,验证系统是否具有并发性的问题。(不要无脑并发)

1)经典公式(仅供参考,具体使用需要在业务实践中代入验证):

平均并发用户数为 C = nL/T

n是login session(登录用户)的数量,L是login session的平均长度(平均在线时间),T是值考察的时间长度(工作时间)

2)另一种说法,使用并发度跟总用户数评估并发用户

公式:总用户数/并发度=并发用户数

并发度计算方式:1. 统计某时段的当前在线用户数;2. 把所有功能操作的用户数都统计出来;4. 将统计出来的用户数除以在线用户数就知道并发度了。(某个时间点10000个在线用户,100个用户进直播间,那么并发度就是1%)

具体在业务实践中应该参考之前的历史数据,跟开发以及业务方评估本次的预期值进行并发压测。(预期并发数)

2.2 负载测试

不断增加请求压力,直到服务器某个资源项达到饱和(比如CPU使用率达到90%+)或某个指标达到安全临界值(比如运维的监控告警阈值or拐点);

负载测试(也叫阶梯式压测)一般主要用来寻找性能的拐点,验证系统在既有测试环境不同的请求压力下能否正常运行。示例如下:
在这里插入图片描述

2.3 配置测试

不断调整系统各方面的配置(软硬件、参数配置等),验证在性能达到最优时(最优的性能一定是权衡各方面因素找到的平衡点)的最佳配置。

2.4 浪涌测试

验证系统在某段时间内并发突增或请求量波动较大的情况下,系统能否正常稳定的提供服务。

PS:这种测试策略使用的也相对较少,主要针对不确定性的短期的峰值流量涌入场景(比如某微博的离婚、恋爱、分手话题)。

2.5 稳定性测试

以恒定的并发数(根据负载测试的结果,CPU使用率在70%时对应的并发数),验证系统在混合场景下的性能表现。

2.6 批处理测试

验证待测系统在既有环境下,系统的批处理(触发式的job等)业务能力能否满足生产的业务需求指标。

2.7 高可用测试

在集群多节点或分布式的情况下,破坏其中一个或多个集群节点,验证系统能否及时恢复服务能力。

2.8 容错恢复测试

验证系统能否在出现故障的情况下仍能保持正常提供服务的能力或出现故障后的自我恢复能力。(熔断、降级策略)
在这里插入图片描述
a1面积越大,说明系统的处理能力越强;a2面积越大,说明系统稳定性越好;a3面积越大,说明系统的容错能力越好

2.9 容量测试

确定系统可处理同时在线的最大用户数。使系统承受超额的数据容量来发现它是否能够正确处理。
采用负载测试策略,验证在现有测试环境下被测系统的最大性能表现(可接受的最大性能表现,不一定是最优性能表现)。

2.10 极限测试

在既有测试环境下,不考虑资源占用率的极限情况(CPU使用率达到95%以上或IO异常繁忙或Load值较高),在系统不宕机的情况下的最大处理能力。

PS:由于被测系统的业务场景各不相同,这种策略,采用率相对较少。

三、性能测试场景建模

根据业务目的,我们可能会同时选择多种策略,来完成一次项目的性能测试,这个没有标准答案,只有一些参考项:
在这里插入图片描述

四、聊聊别的

  • 性能的测试结果,都只能算是参考结果,很难跟真实场景1:1对应,所以需求分析+场景建模+环境配置,十分的重要,能减少最终结果的误差;
  • 要注意数据的存档,避免后续不必要的麻烦;
  • 对于压测环境来说,最好喝生产环境同等配置,最小化部署。

相关文章:

【服务端性能测试】性能测试策略如何做

一、需求收集 先需要确认本次测试目的是什么,然后再看我们需要用什么参数来判断这个目的是否能够达成。 1.1 业务性能指标参考: TPS、QPS、RT、请求成功率(一般请求成功率>99.99%) 1.2 硬件性能指标参考: 即服…...

透明拼接屏造型:多样拼接与影响因素

透明拼接屏,以其独特的透明显示效果和灵活的拼接方式,在现代显示领域中独树一帜。其造型多样,包括横屏拼接、竖屏拼接、异形拼接以及定制拼接等多种方式,满足了不同场景和应用的需求。尼伽小编将详细介绍这些拼接方式,…...

c# 对路径的访问被拒绝

c#写入一个文件,报错: c# 对路径的访问被拒绝 解决方法: 检查文件路径和目录权限: 确保你的应用程序有权限写入指定的文件或目录。在某些情况下,你可能需要以管理员身份运行应用程序或更改文件/目录的权限。 确保目…...

【数据结构】单调队列

参考这篇文章 单调队列的作用是:给定一个长度为 n 的数组,维护长度为 m 的区间最大/小值 (下面以维护区间最小值为例,最大值相反) 简单来说就是维护一个 deque,deque 的队头是当前最小值的序号&#xff…...

《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第5章 决策树(代码python实践)

文章目录 第5章 决策树—python 实践书上题目5.1利用ID3算法生成决策树,例5.3scikit-learn实例 《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第5章 决策树 第5章 决策树—python 实践 import numpy as np import pand…...

电脑可以设置代理IP吗

首先需要回答的是,电脑可以设置代理IP,下面我们详细说说如何设置。 首先,我们使用工具来完成,使用工具的好处就是可以设置单独的软件使用代理,也可以设置全局,比较方便 我们解压这个文件出来,打…...

Zookeeper服务注册与发现实战

目录 设计思路 Zookeeper注册中心的优缺点 SpringCloudZookeeper实现微服务注册中心 第一步:在父pom文件中指定Spring Cloud版本 第二步:微服务pom文件中引入Spring Cloud Zookeeper注册中心依赖 第三步: 微服务配置文件application.y…...

【LeetCode】每日一题 2024_1_30 使循环数组所有元素相等的最少秒数(哈希、贪心、扩散)

文章目录 LeetCode?启动!!!题目:使循环数组所有元素相等的最少秒数题目描述代码与解题思路 LeetCode?启动!!! 今天的题目类型差不多是第一次见到,原来题目描述…...

uni-app vite+ts+vue3模式 集成微信云开发

1.创建uni-app项目 此处使用的是通过vue-cli命令行方式uni-app官网 使用vue3/vite版 创建以 typescript 开发的工程(如命令行创建失败,请直接访问 gitee 下载模板) npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project(我创建失败…...

一个程序入库出现死锁问题的排查

某虚拟化部署的服务群,发现其中一个程序在写数据库时,经常有死锁现象,一旦出现,持续时间长达数分钟。当时没时间排查,一直到年底才解决。后面又忙,直到月底才有点时间总结。抛开起初没找到问题的时间外&…...

记录解决报错--These dependencies were not found jsencrypt lodash-es

1.场景 idea打包vue,报错退出,缺少依赖 These dependencies were not found jsencrypt lodash-es2.解决步骤 ①到相关目录下直接安装依赖,npm install --save jsencrypt lodash-es。我这里是没安装成功,原因是很多依赖冲突。…...

【极数系列】Flink集成DataSource读取集合数据(07)

文章目录 01 引言02 简介概述03 基于集合读取数据3.1 集合创建数据流3.2 迭代器创建数据流3.3 给定对象创建数据流3.4 迭代并行器创建数据流3.5 基于时间间隔创建数据流3.6 自定义数据流 04 源码实战demo4.1 pom.xml依赖4.2 创建集合数据流作业4.3 运行结果日志 01 引言 源码地…...

React hooks子组件暴露方法示例

说明 通常情况下,React 子组件使用父组件的方法或值通过props传递,反过来,父组件如果需要子组件的方法就需要子组件将自己的方法暴露出去。以下是一个实例: User.tsx import React, { FC, useEffect, useState, useRef } from …...

数据结构:大顶堆、小顶堆

堆是其中一种非常重要且实用的数据结构。堆可以用于实现优先队列,进行堆排序,以及解决各种与查找和排序相关的问题。本文将深入探讨两种常见的堆结构:大顶堆和小顶堆,并通过 C 语言展示如何实现和使用它们。 一、定义 堆是一种完…...

电加热热水器上架亚马逊美国站需要的UL174报告

电加热热水器上架亚马逊美国站需要的UL174报告 家用热水器出口美国需要办理UL174测试报告。 热水器就是指通过各种物理原理,在一定时间内使冷水温度升高变成热水的一种装置。分为制造冷气部分和制造热水部分。其实这两个部分又是紧密地联系在一起,密不可…...

使用visual studio写一个简单的c语言程序

官网下载visual studio,社区版免费的 https://visualstudio.microsoft.com/zh-hans/ 下载好以后选择自己的需求进行安装,我选择了两个,剩下的是默认。 创建文件:...

怎么创建facebook广告

创建Facebook广告的文章应由本人根据自身实际情况书写,以下仅供参考,请您根据自身实际情况撰写。 创建Facebook广告的步骤: 确定目标受众和广告主题:首先需要明确你的目标受众是谁,他们有什么特点,以及你想…...

pdf怎么转成高清图?pdf在线转换器推荐分享

在日常的工作或者学习中,有时候会需要将编辑好的pdf转高清图片,这样更方便我们后续使用,那么怎么将pdf转图片(https://www.yasuotu.com/pdftopic)还能保持清晰呢?下面介绍一款pdf转换工具,支持p…...

postgresql 查询缓慢原因分析

pg_stat_activity 最近发现系统运行缓慢,查询数据老是超时,于是排查下pg_stat_activity 系统表,看看有没有耗时的查询sql SELECT pid, state, query, query_start, backend_type FROM pg_stat_activity WHERE state active AND query LIK…...

N65总账凭证管理凭证查询(sql)

--核算账簿 select code , name , pk_setofbook from org_setofbook where ( pk_setofbook in ( select pk_setofbook from org_accountingbook where 1 1 and ( pk_group N0001A11000000000037X ) and ( accountenablestate 2 ) ) ) order by code;--核算账簿 select code …...

Qwen3.5-4B-Claude-Opus-GGUF一键部署:CSDN镜像平台Web化推理服务上线指南

Qwen3.5-4B-Claude-Opus-GGUF一键部署:CSDN镜像平台Web化推理服务上线指南 1. 模型与平台介绍 Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF 是一个基于 Qwen3.5-4B 的推理蒸馏模型,重点强化了结构化分析、分步骤回答、代码与逻辑类问题的处理…...

Python绘图进阶:掌握颜色代码与实战应用

1. Python绘图中的颜色表示方法全解析 第一次用Python画图时,我对着那一堆颜色参数完全摸不着头脑。为什么同样的红色可以用"red"、"(1,0,0)"、"#FF0000"这么多种方式表示?后来才发现,这些不同的颜色表示方法各…...

GLM-4v-9b多图对比分析:上传两张产品图→自动识别差异点→生成结构化对比报告

GLM-4v-9b多图对比分析:上传两张产品图→自动识别差异点→生成结构化对比报告 1. 产品对比分析的新选择 在日常工作中,我们经常需要对比两个相似的产品图片——可能是不同版本的设计稿、竞品分析、或者产品质量检查。传统方法需要人工逐像素比对&#…...

ESC固件底层开发:寄存器级驱动与无传感器换相实现

1. ESC固件底层技术解析:电子调速器固件架构与驱动实现电子调速器(Electronic Speed Controller, ESC)是无人机、电动航模、机器人驱动系统中的核心执行单元,其本质是一个高动态响应的三相逆变器控制器。ESC固件并非简单的PWM输出…...

RailSAM:驯 服 SAM与 适 配 器 的 铁 路 分 割精读

一、整体总结研究领域: 基于视觉基础模型的铁路场景语义分割(轨道分割)解决问题: 解决传统铁路分割方法依赖大量标注数据、泛化能力差、计算开销大的问题,同时探索如何将通用大模型(SAM)有效迁移…...

解锁B站评论区成分检测器核心价值:从入门到精通的实战指南

解锁B站评论区成分检测器核心价值:从入门到精通的实战指南 【免费下载链接】bilibili-comment-checker B站评论区自动标注成分,支持动态和关注识别以及手动输入 UID 识别 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-comment-checker …...

功率半导体技术:GaN与SiC的性能对比与应用指南

1. 功率半导体技术演进背景在电力电子领域,功率半导体器件的发展经历了从硅(Si)到第三代半导体材料的重大跨越。作为工程师,我们正站在技术革新的关键节点:氮化镓(GaN)和碳化硅(SiC)这两种宽禁带半导体材料正在重塑功率转换的格局。传统硅基功…...

论文写作“智多星”:书匠策AI,开启期刊论文新纪元

在学术的广袤天地里,论文写作宛如一场充满挑战的冒险之旅。尤其是期刊论文,它不仅是学者研究成果的集中展现,更是学术交流与进步的重要桥梁。但面对选题迷茫、资料繁杂、结构搭建困难等诸多难题,许多学者常常感到力不从心。别担心…...

效率革命:跳过java安装与配置,用快马平台秒级验证算法性能

效率革命:跳过Java安装与配置,用快马平台秒级验证算法性能 最近在优化一个数据处理模块时,我需要快速验证几种排序算法的性能差异。按照传统开发流程,至少要经历以下步骤: 下载并安装JDK,配置环境变量选择…...

SpringBoot整合MQTT实战:从零到一构建物联网消息通信

1. 为什么选择SpringBoot整合MQTT? 物联网项目开发中,设备与服务器的通信就像快递员送货上门。MQTT协议就是这个快递员,而SpringBoot就是你家门口的智能快递柜。两者结合能让设备数据像包裹一样准时送达,还不会丢件。 我去年做过一…...