用力过猛,把服务压挂了?

news2024/11/17 5:51:20

 

 背景   

        在刚开始进行压测的时候,我也不知道需要提前分析下压测的QPS目标,也不知道说第一步压测的预估值是多少,结果一下子干上去,就把测试环境的服务给整挂了,然后就迎来了一大波的投诉(好惨呐)

    后来慢慢的学习摸索到了,进行压测要有对应的压测计划,压测计划内必不可少的有「目标QPS」、「梯度施压详细计划」等信息。
     以下为个人压测执行总结,仅供参考~

「容量评估」目标QPS计算

    那么在进行「容量评估」压测时,我们是如何计算压测的QPS目标的呢?关于设置如何制定合理的压测QPS,我这边也简单的阐述下:
    在进行压测时,目标QPS来来源于真实环境的QPS,我们会以线上N倍QPS max进行压测,在当前服务流量的基础上,逐步施压到N倍QPS来探查过程中的性能瓶颈,计算过程如下:
     * N 需要根据公司业务的特性进行制定,一般核心 业务 链路的N是3
    案例:
  • xx公司根据业务特性要求服务能够承载3倍QPS
  • 真实环境的接口A的QPS max=6000、RT=30ms
  • 真实环境的资源配置为6个pod
    那么测试环境进行压测的目标计算过程:资源配置为1个pod,则对应的接口A的QPS max=1000,那么3倍QPS目标=3*100=3000

「施压」并发数计算

    由于我使用的是阿里云的PTS压测平台,所以需要通过不断提高并发数来对服务进行施压,从而到达目标QPS。所以在进行压测前需要指定详细的压测执行计划,明确到每一轮预计的并发数、预估的目标QPS。
    计算公式:并发数=QPS*平均响应时间
案例:
    假设QPS目标为3000,RT耗时30ms,那么对应的并发数=3000*0.03=90

「压测策略」梯度式压测

    在做压力测试的时候,一般都是按照梯度施压的方式去逐步增加并发用户数,而不是在没有预估的情况下,一次加几万个用户,导致服务或者数据库直接被打挂,造成大面积的请求失败。
案例:
    已经知道目标QPS 3000,预估并发数90,那么可以从1/3并发(30)开始施压
轮次
并发数
预估QPS
1
30
1000
2
45
1500
3
60
2000
4
75
2500
5
90
3000
    1/3只是个参考值,也可以从更低10或者其他值开始进行试压,但是第一轮压测并发数不建议超过「预估并发数」。
    当然,施压的用户并发数也不一定准确,可能在资源充足的情况下,并发数30也可以直接到达目标QPS,在心里没底不知道施压多少的时候可以用这种方式来计算首次施压的并发数。

凡事先讨好自己

至于别人

分交情

看心情

做人就要酷一点

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/184461.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【6-循环神经网络】北京大学TensorFlow2.0

课程地址:【北京大学】Tensorflow2.0_哔哩哔哩_bilibiliPython3.7和TensorFlow2.1六讲:神经网络计算:神经网络的计算过程,搭建第一个神经网络模型神经网络优化:神经网络的优化方法,掌握学习率、激活函数、损…

基于微信小程序的校园自助打印系统小程序

文末联系获取源码 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.…

GJB 5000B二级-RDM需求开发与管理

一、主要变化情况 新增3项(金色)、合并12->5项(绿色)、修订3项(蓝色) 合并的主要内容 1、合并过程域:原标准中RD与ReqM合并为RDM   需求开发与需求管理的过程活动紧密相关,在全生命周期中不可分割。 2、合并实践条目:精炼实践,聚焦重点   a)ReqM SP1.1“获…

UE运行时动态设置屏幕分辨率

文章目录 1.实现目标2.实现过程2.1 控制台直接输入命令2.2 通过蓝图设置3.参考资料1.实现目标 在UE中以独立进程(Standalone Game)方式启动游戏,并在运行时动态修改游戏窗口的屏幕分辨率大小,如下图所示屏幕大小从1000x800修改为600x400。 2.实现过程 参考文档和资料,通…

微服务服务治理

服务治理什么是服务治理?第一部分 服务注册第二部分 服务发现Nacos(常见注册中心)入门搭建Nacos环境Nacos远程调用实现商品服务的负载均衡什么是负载均衡?手动实现负载均衡利用组件实现负载均衡修改负载均衡策略什么是服务治理? 服务治理是微…

PySpark sql 中一些函数的总结(持续更新)

看到什么函数就记录了,没有什么逻辑关系 spark 中DataFrame 和 pandas的DataFrame的区别 1. F.split() 和 df.withColumn() from pyspark.sql import SparkSession from pyspark.sql import functions as F from pyspark.sql.types import *df spark.sql(sql) sp…

打开Jupyter notebook没有虚拟环境内核

放了个假,今天准备打开anaconda中的jupyter notebook重温一下之前的文档,结果双击Anaconda-Navigator出现了【应用程序“Anaconda-Navigator”无法打开】,想着利用终端也可以操作,于是使用下面命令激活了环境并打开jupter noteboo…

JZ11 旋转数组的最小数字

【答案解析】:暴力破解:遍历数组找出最小值即可 更优思想:采用二分查找,这个题主要分析三种旋转情况[1, 2, 3, 4, 5],使用中间值与右端进行比较。 1. 中间大于右边[3, 4, 5, 1, 2],这种情况下,最…

Spring Framework-01

Spring两大核心技术 1.IOC 2.AOP Spring 1 Spring Framework 1.核心层 Core Container:核心容器,这个模块是Spring最核心的模块,其他的都需要依赖该模块 2.AOP层 AOP:面向切面编程,它依赖核心层容器,目的是在不改变原有代码的前…

国内那么多的低代码平台,究竟哪家比较强?

国内有特色的低代码快速开发平台产品有哪些?这篇就来介绍下目前市面上主要的几家低代码开发平台! 简道云、明道云、IVX这几家目前是无代码赛道的明星选手,在市场综合表现上名列前茅。宜创、红圈营销虽也极具潜力,但在市场表现力上…

virsh日常管理命令

virsh日常管理命令virsh日常管理命令创建vm实例规范网卡编号从0开始Centos7最小化安装环境勾选VM实例建议只分配/分区查看vm列表启动vm实例--startvm实例(软)关机--shutdownvm实例断电关机--destroyvm实例(软)重启--rebootvm实例重命名--domrenamevm实例挂起--suspend查看vm实例…

Elasticsearch:从 Kafka 到 Elasticsearch 的实时用户配置文件数据管道

如今,网络服务、数字媒体、传感器日志数据等众多来源产生了大量数据,只有一小部分数据得到妥善管理或利用来创造价值。读取大量数据、处理数据并根据这些数据采取行动比以往任何时候都更具挑战性。 在这篇文章中,我试图展示: 在…

Discord教程:Discord账号注册、Discord多账号登录和管理

Discord最初是为游戏玩家在群聊和交流而创建的。但自疫情爆发以来,许多企业、公司和初创公司发现,居家办公时使用Discord进行日常沟通非常便捷。 Discord不再是仅限于游戏玩家,平台建立了不同于其他任何社交空间的新空间,封闭又开…

9、矩阵的简单运算

目录 一、矩阵的加减运算 二、矩阵的乘方运算 1.数与矩阵的乘法 2.矩阵与矩阵的乘法 三、矩阵的除法 四、矩阵的幂运算 五、矩阵元素的查找 六、矩阵元素的排序 七、矩阵元素的求和 八、矩阵元素的求积 九、矩阵元素的差分 一、矩阵的加减运算 进行矩阵加法、减法运…

前端学习第四站——CSS全面学习基础篇

目录 一、基础认知 1.1 CSS的介绍 1.2 语法规则 1.3 CSS初体验 1.4 CSS初识-小结 2.1 CSS引入方式 二、基础选择器 1.1 选择器的作用 1.2 标签选择器 1.3. 类选择器 1.4 id选择器 补充:类和id的区别 1.5 通配符选择器 三、字体和文本样式 1. 字体样式 …

python数据可视化开发(2):pandas读取Excel的数据格式处理(数据读取、指定列数据、DataFrame转json、数学运算、透视表运算输出)

系列文章目录 python开发低代码数据可视化大屏:pandas.read_excel读取表格python实现直接读取excle数据实现的百度地图标注python数据可视化开发(1):Matplotlib库基础知识 文章目录系列文章目录前言实践目标一、读取Excel数据read_excel参数说明读取全部…

Launcher应用列表内搜索框显示异常

问题描述 应用列表界面搜索框显示异常。本地试验后发现以下规律。 1、删除几个底边栏图标 2、旋转屏幕 3、进入应用列表,观察上方搜索框显示 问题分析 此问题是launcher内部界面显示问题,比较初级。找到规律后,发现应用列表内搜索框和底边…

【Hadoop】MapReduce数据倾斜问题解决方案

默认情况下Map任务的数量与InputSplit数量保持一致,Map阶段的执行效率也与InputSplit数量相关,当遇到大量的小文件时我们采用SequenceFile合并成一个大文件,以此来提高运行效率(【Hadoop】MapReduce小文件问题解决方案&#xff08…

OJ万题详解––高考排名(C++详解)

题目 题目描述 高考成绩的排名规则是按总分由高到低排,总分相同的人排名应相同,例如有 5 个同学的考高成绩: 考号姓名成绩001c1567002ygh605003gl690004xtb605005wzs567按照成绩排序后,成绩如下: 排名考号姓名成绩1003…

C/C++ 相关低耦合代码的设计

在我们设计C/C 程序的时候,有时需要两个类或者两个模块相互“认识”,或者两个模块间函数互相调用,假设我们正在开发一个网上商店,代表的网店客户的类必须要知道相关的账户。UML图如下,这被称为环依赖,这两个…