聊个简单的话题:如何分析性能需求?

news2024/11/26 21:47:45

目录

前言

需求评估分析

性能测试方案


前言

前几天还在北京出差时候,微信群有个同学问了一个问题,为什么800并发压测,服务器还没有报错?当时群里其他同学提了很多观点,比如:

  • 并发不够,加并发!
  • 要不要考虑首页进来多少人?
  • 是不是有限流,流量都被拦截了?
  • 我看CPU都打满了,压测要关注硬件指标!
  • 是不是你压测机配置比较低,无法发起这么多并发?
  • ............

林林总总感觉说了很多,又感觉都没说到位。正好周四时候,从同事那里听到一个性能需求,说来也蛮有意思的,需求大致是这样:

网关要验证在跨可用区情况下,支撑20W的TPS。就这一句话,我当时有点诧异(因为以我对我们公司目前业务及技术架构的理解,根本不需要20W的TPS)。

那么,问题来了:如果是你,听到这样的“一句话需求”,你会如何评估分析,然后制定压测方案呢?

这篇文章,聊聊我对这个需求的一些理解和分析,以及我会如何设计性能测试方案。

需求评估分析

先来聊聊如何分析这个性能需求,关于性能需求分析,我总结下面几点roadmap:

接下来,按照上述思维导图,我会通过几个不同问题的解答,来描述我的分析思路。

谁提的需求,目的是什么?

流量网关的研发同学提了一个性能测试需求:网关要验证在跨可用区情况下,支撑20W的TPS。

做个关键字提取:流量网关、跨可用区、20W的TPS。

什么是流量网关?

简单来说,流量网关就是所有请求的流量入口,承载了所有用户请求。如下图所示:

如何理解跨可用区?

一般来说,云服务的可用区,可以理解为同一个机房的不同虚拟机集群。

为了避免某个可用区由于网络硬盘等原因损坏导致服务不可用,跨可用区的服务部署是一种常见的容灾手段。

流量网关有什么特点?

负载均衡:跨多个服务的动态负载均衡;

身份验证:即用户的身份鉴权,登录态、黑白名单等;

限流限速:基于速率、请求数、并发等维度进行流控;

其他特点:加解密、A/B测试、灰度发布、监控告警、服务治理等功能;

压测流量网关有什么难点?

网关是用户请求流量的入口,因此访问压力会很大,即我们常说的QPS很高。那么在压测时,要考虑下面几点:

  • 需要能支撑发起很多并发请求的工具;
  • 网关服务的应用需要部署集群,来应对高并发;
  • 由于只是跨可用区,一般云服务可控制在0.5ms以内;

在什么场景下为谁提供服务?

上面介绍了流量网关的特点,这里的场景指的是业务场景或者说测试场景,即:验证网关的哪些功能场景下的性能表现。上述的网关特点中,一般需要压测验证的场景有鉴权、加解密、身份验证。

目前系统架构调用关系是怎样的?

做性能测试,最怕的是不了解系统架构就开始无脑高并发!

了解系统架构及服务间的调用关系,才能设计合理的压测场景,准备对应的脚本和数据。

如何搭建满足需求的性能测试环境?

根据上面的分析,跨可用区的网关应用集群,在搭建环境时,需要考虑的有下述几点:

  • 集群均匀分布在不同可用区;
  • 网关应用的单机配置(比如8C16G);
  • 虚拟机型保持一致(内核版本、计算型/IO型);
  • 需要绑定专门的域名,SLB和带宽需要大于预期的指标;
  • 压测工具需要尽可能的支撑更高的并发流量发起(比如Wrk);
  • 因为涉及到鉴权和身份验证,需要提前预热相关的auth、token数据到缓存;

如何评估性能需求的技术指标是否合理?

上面提到了性能指标是20W的TPS,那这个指标是否合理呢?

首先,性能需求的技术指标是否合理,要结合实际的业务场景和目前峰值流量及未来增长趋势来综合评估

假设流量网关被所有业务接入,业务对RT比较敏感,业务请求RT的目标是10ms;目前的线上峰值QPS是5W-QPS,预计未来半年增长到10W的QPS。

那这个时候,如何评估技术指标,或者说设定合理的技术指标呢?我们可以结合实际情况讨论,得到下面这样的一个技术指标:

  • ART&99RT:≤2ms;
  • 安全水位下的QPS:≥10W;
  • TPS:统计核心业务的核心链路当前吞吐能力,做聚合计算,保持一定上浮;

当然,上述的指标有个前提:业务不接受有损。

如果业务接受有损,那么性能的技术指标无须这么苛刻(因为可以限流降级);

性能测试方案

说到了性能测试方案,我偶然翻出了19年6月份画的一个性能测试流程职责说明表,见下图:

聊到这里,该如何设计性能测试方案呢?答案已经在上述的需求分析里了。

加油吧,测试人!如果你需要提升规划,那就行动吧,在路上总比在起点观望的要好。未来的你肯定会感谢现在拼命的自己!

 

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

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

相关文章

某医院Pad网络故障分析

分析背景 某医院为了加强信息安全管理,防止病人隐私信息泄露,采用部署“零信任”安全架构设计理念的企业移动安全支撑平台方案。 但在部署前期测试时,遇到了严重的性能问题。 在本次测试环境中,通过PAD访问患者转运业务&#x…

【深入浅出 Yarn 架构与实现】6-4 Container 生命周期源码分析

本文将深入探讨 AM 向 RM 申请并获得 Container 资源后,在 NM 节点上如何启动和清理 Container。将详细分析整个过程的源码实现。 一、Container 生命周期介绍 Container 的启动由 ApplicationMaster 通过调用 RPC 函数 ContainerManagementProtocol#startContain…

SWLLOE

前面讲过了workman,现在我们再了解另外一个swoole,首先我们要了解swoole是个啥?swoole其实是一个面向生产环境的 PHP 异步网络通信引擎,PHP Swoole 作为网络通信框架可以使 PHP 开发人员可以编写高性能的异步并发 TCP、UDP、Unix…

Edge浏览器使用ChatGPT,新手这里看(免费快捷)

前言: ChatGPT受到越来越多人的关注,ChatGPT好不好用,我觉得仁者见仁、智者见智吧,不过首先得先使用感受一下才好回答。多数人都想体验/使用ChatGPT一波,但目前付费和各种渠道满天飞,让人很苦恼&#xff0c…

越来越多企业出现网络安全问题,是什么原因导致的?

近年来网络安全问题层出不穷,信息泄露、网络钓鱼、黑客攻击等问题频繁发生。 尽管有证据表明在一些全球知名的企业组织中存在价值数十亿美元的网络安全漏洞,但企业仍然没有认真对待网络安全。大公司在寻找各种理由来减少其网络安全预算,从而…

操作系统学习笔记(二)

目录 你如何理解“临界”这个词? 那你如何理解在计算机领域下的“临界”这个词呢? 如何理解计算机领域中的“同步”这个词呢? 你如何理解critical这个单词? 单标志法: 双标志先检查法 双标志后检查法&#xff0…

Spring Cloud Gateway路由到Amazon S3签名失败处理

Spring Cloud Gateway路由到Amazon S3签名失败处理 背景 最近在预研统一存储网关,想到就是使用Spring Cloud Gateway作为网关的入口,再反向代理到S3对象存储服务器。 软件版本 网关:Spring Cloud Gateway 3.1.2 s3对象存储:m…

语音识别 | kaggle鸟叫识别新赛赛题解析

整理自kaggle平台 赛题题目: BirdCLEF 2023 kaggle - 鸟声识别大赛 赛题链接:https://www.kaggle.com/competitions/birdclef-2023 赛题背景 鸟类是生物多样性变化的极好指标,因为它们具有高度流动性并且具有多样化的栖息地要求。因此物种…

Jmeter和Postman那个工具更适合做接口测试?

软件测试行业做功能测试和接口测试的人相对比较多。在测试工作中,有高手,自然也会有小白,但有一点我们无法否认,就是每一个高手都是从小白开始的,所以今天我们就来谈谈一大部分人在做的接口测试,小白变高手…

推特运营的方法

推特是一个广泛使用的社交媒体平台,可以通过以下方法来运营和营销: 建立一个完整的个人或品牌资料:确保你的推特资料页面清晰、有吸引力,并包含关键信息,如个人简介、网站链接和联系方式。 确定目标受众:…

【重制版】10分钟学会WINDOWS、MAC、LINUX如何安装GPT桌面版

文章目录 1 前言2 Windows版下载安装2.1 安装包2.2 winget下载 (注意看,不是wget!) 3 Mac版下载安装3.1 安装包3.2 homebrew安装 4 Linux版下载安装4.1 安装包4.2 终端下载 5 特点5.1 软件特点5.2 菜单功能(个人喜好特…

ChatGPT:【万能话术模板】+99个提示词

一:万能话术提示模板 【方便观看版】 【方便复制版】 现在你是一位[ ]创作者。你的任务是以[ ]为标题写一份[ ]的文章。 文章内容包含[ ] [ ] [ ]3部分。 听众是 [ ],他们喜欢 [ ],看重[ ]。 你的写作风…

python3 爬虫相关学习2:网页相关基础知识笔记

1 网页的构成 一般来说&#xff0c;日常看到的网站的网页的组成内容有如下 html 结构的代码css 结构的代码资源&#xff08;文字&#xff0c;图片&#xff0c;音乐&#xff0c;视频等等&#xff09; html 网页结构描述的语言 比如这种写法的文件 <html> <body> …

机器学习基础知识之分类性能评价指标

文章目录 分类性能基本概念1、准确率1、精确率2、召回率3、F1-score4、ROC曲线5、多分类问题中的相关指标6、混淆矩阵 分类性能基本概念 与预测性能评价指标相类似&#xff0c;分类性能评价指标同样也是将模型计算得出的标签值与实际的真实标签值通过数学统计上的公式进行计算…

十三、超时重试机制

目录 超时配置和重试机制 FeignClient 、Ribbon 、 Hystrix三个之间配置优先级的关系 配置常用属性 Ribbon超时和重试配置: Ribbon重试次数计算公式&#xff1a; FeignClient 超时配置&#xff1a; Hystrix超时配置&#xff1a; Hystrix超时计算公式&#xff1a; 超时配…

Android PickerView简单应用

1. Android-PickerView Android-PickerView这是一款仿iOS的PickerView控件&#xff0c;有时间选择器和选项选择器。 添加依赖项 implementation com.contrarywind:Android-PickerView:4.1.92. 时间选择器 Android-PickerView时间选择器使用Build模式来创建 var timePicker…

如何开展计算机相关的学术研究? - 易智编译EaseEditing

计算机科学是一门包括理论和应用两方面的学科&#xff0c;可以涉及各种领域&#xff0c;如人工智能、计算机视觉、机器学习、大数据、网络安全等等。开展计算机相关的学术研究需要以下步骤&#xff1a; 1.明确研究问题&#xff1a; 首先需要明确研究问题和目标。选择一个研究方…

5月15号软件资讯更新合集.....

Vue2 to Composition API 语法转换器 V2.0 版本更新 在线使用 网站 Gitee: vue2-to-composition-api vue2-to-composition-api 是一款可以将 Options API 转换成 Composition API 的在线应用工具&#xff0c;转换后直接导出 Script setup 内容&#xff0c;帮助 Vue2 项目减少…

VoxWeekly|The Sandbox 生态周报(20230508)

欢迎来到由 The Sandbox 制作的《VoxWeekly》。我们会在每周一发布这份周报&#xff0c;对上一周 The Sandbox 生态系统所发生的事情进行总结。 如果你喜欢我们内容&#xff0c;欢迎与朋友和家人分享。您还可以订阅我们的 Medium 、关注我们的 Twitter&#xff0c;并加入 Disco…

OpenCL编程指南-4.2矢量数据类型

矢量数据类型 OpenCL C还增加了对矢量数据类型的支持。矢量数据类型如下定义&#xff0c;首先是类型名&#xff0c;具体包括char、uchar、short、ushort、int、uint、float、long或ulong&#xff0c;后面是一个字面值n来定义矢量中的元素个数。对于所有矢量数据类型&#xff0…