《云上大型赛事保障白皮书》——第三章 压测调优与技术演练——3.1 云上大型赛事压测调优——3.1.1 压力测试基本概念

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 《云上大型赛事保障白皮书》——第三章 压测调优与技术演练——3.1 云上大型赛事压测调优——3.1.1 压力测试基本概念

第三章 压测调优与技术演练


系统迁移上云之后,如何评估系统稳定性是我们要面临的第一个问题。本章主要讨论如何使用压力测试的方法,通过测量量化的指标来评估系统整体性能,并在压测过程中进行系统调优,以及如何使用技术演练的方法,通过具体实践的形式评估系统整体稳定性,以及这两种方法在北京冬奥保障上的应用。


3.1 云上大型赛事压测调优


3.1.1 压力测试基本概念


传统的业务系统并非生来在云上设计、云上搭建,也许我们非常了解系统的架构,清楚每个模块的规格和指标,但是系统整体在云上所能承受的性能量化级别是模糊的。此时就需要一种方法去评估系统整体性能及稳定性,这就是压力测试。

压力测试可以帮助我们量化理解该系统架构是否可承载当前至未来一段时间的业务量,也可以帮助我们发现系统瓶颈、系统可能存在的缺陷。压力测试是任何一个高可用高并发系统在上线之前必须经历的过程。

以下量化指标常被用来评估压力测试效果:

并发数:在同一时刻,同时操作同一个功能点的客户或客户端的数量。也可以理解为同时在线的用户数。

QPS(Query Per Second):或者叫RPS(Request Per Second),是最重要的通用指标,指系统每秒能处理的请求个数,或指客户端所发起的每秒请求量。

TPS(Transaction Per Second):指系统每秒能处理的事务个数。在单一功能模块场景下,QPS = TPS * 每个事务所包含的请求数。假设一个事务只包含一个请求,那么 TPS = QPS。

成功率:在一定量级的QPS或TPS下,系统能成功处理的比例。在达到系统瓶颈时,成功率会极速恶化。

RT(Response1Time):响应时间,是指用户在请求某个操作之后到获得结果之前需要等待的时间量。一般情况下这是客户端侧的参数,因此包括网络请求以及网络响应返回时间。

吞吐量:反映处理能力总量的指标,在给定的时间内处理的事务量或请求量。CPU资源利用率、内存利用率、I/O、内核参数(信号量、打开文件数)等:一些通用资源指标,不再赘述。

通常来说,一个优质的系统可以用较短的响应时间,以较高成功率处理高并发数的QPS请求,同时不会触发资源指标的性能瓶颈。而压测指标的侧重点选取则需要业务方基于业务层面的考量提供明确的压测目标。例如,在北京冬奥通APP压测过程中,确定了压测目标就是系统需要满足xW日活(DAU,Daily Active User,日活跃用户数量),单接口成功率在99.99%以上,单接口RT在3s以内。作为云服务商,我们就可以根据此目标进一步拆解指标,完成压测。与这些指标相伴的是有关压力测试的一些术语,总结如下:

事务是作为单个逻辑工作单元执行的一系列任务,如完成一项查询,完成一次数据传输等。一个事务可能包含多次请求。在一个事务只有一次请求的情况下,TPS = QPS。

压测机:也叫施压机,即模拟用户发起请求的机器。

单接口压测:针对具体的某个接口实施的压力测试。

全链路压测:以全链路业务模型为基础,多个接口串行实施的压力测试。

数据清理:压测过程中如果有存储操作,则可能会伴随脏数据,压测结束时要对脏数据清理掉。

功能回归:如果系统有针对压测场景进行特定的调整或更改,压测及数据清理完成后,需要进行功能回归。

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
19天前
|
缓存 Java 测试技术
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
使用JMeter对项目各个接口进行压力测试,并对前端进行动静分离优化,优化三级分类查询接口的性能
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
|
2月前
|
消息中间件 Kafka 测试技术
【Azure 事件中心】使用Kafka的性能测试工具(kafka-producer-perf-test)测试生产者发送消息到Azure Event Hub的性能
【Azure 事件中心】使用Kafka的性能测试工具(kafka-producer-perf-test)测试生产者发送消息到Azure Event Hub的性能
|
2月前
|
监控 Java 测试技术
实战派必看!Python性能测试中,JMeter与Locust如何助力性能调优
【8月更文挑战第6天】性能优化是软件开发的关键。本文介绍JMeter与Locust两款流行性能测试工具,演示如何用于Python应用的性能调优。JMeter可模拟大量用户并发访问,支持多种协议;Locust用Python编写,易于定制用户行为并模拟高并发。根据场景选择合适工具,确保应用在高负载下的稳定运行。
94 4
|
3月前
|
弹性计算 Prometheus Cloud Native
SLS Prometheus存储问题之Union MetricStore在性能测试中是如何设置测试环境的
SLS Prometheus存储问题之Union MetricStore在性能测试中是如何设置测试环境的
|
2月前
|
测试技术 索引 CDN
hyengine wasm业务性能测试问题之测试设备如何解决
hyengine wasm业务性能测试问题之测试设备如何解决
|
3月前
|
测试技术 Python
我们假设要测试一个名为`http://example.com`的网站,并对其进行简单的GET请求性能测试。
我们假设要测试一个名为`http://example.com`的网站,并对其进行简单的GET请求性能测试。
|
3月前
|
监控 数据可视化 测试技术
性能测试:性能测试报告
**性能测试报告摘要** 报告详述系统在不同负载下的性能,作为决策、问题发现与解决、沟通合作及监控改进的依据。内容涵盖测试目的、环境、策略、用例、结果、分析、问题、调优建议及风险评估。清晰的图表辅助理解,为开发团队提供优化指导,确保系统性能与用户体验的提升。
70 2
|
3月前
|
监控 测试技术 应用服务中间件
性能测试:性能测试计划
性能测试计划是在进行软件或系统的性能测试之前制定的详细计划和指导文件。它描述了所需性能测试的目标、范围、测试环境、资源需求、测试策略、测试用例、时间表等重要信息。
60 0
|
3月前
|
监控 数据可视化 测试技术
性能测试:性能测试流程与方法
**性能测试流程与方法概述:** 本文介绍了性能测试的关键步骤,包括现状分析、指标获取、用户场景定义、验收标准设定、测试计划编写、压力环境准备、执行压测、监控、结果分析、报告编写及改进建议。测试方法涉及并发模式(虚拟用户)和RPS模式(吞吐量),确保系统在不同负载下的稳定性和效率。
82 0
|
3月前
|
监控 Java 测试技术
性能测试:主流压测工具介绍
**性能压测工具摘要:** - Apache AB:命令行基准测试工具,简单轻量,用于评估服务器性能。 - Apache JMeter:开源Java框架,支持多种协议,适合复杂负载测试,提供丰富的图表和报告。 - nGrinder:开源,提供直观界面,支持分布式测试,录制回放脚本,实时监控。 - Locust:Python基础,适用于HTTP/WebSocket测试,可扩展,实时监控。 - LoadRunner:Micro Focus的商业工具,广泛支持多种协议,功能强大。
62 0
下一篇
无影云桌面