《云上大型赛事保障白皮书》——第三章 压测调优与技术演练——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进行规格选择与性能压测。
相关文章
|
14天前
|
缓存 Java 测试技术
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
使用JMeter对项目各个接口进行压力测试,并对前端进行动静分离优化,优化三级分类查询接口的性能
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
|
3天前
|
测试技术 持续交付 UED
软件测试的艺术与科学:平衡创新与质量的探索在软件开发的波澜壮阔中,软件测试如同灯塔,指引着产品质量的方向。本文旨在深入探讨软件测试的核心价值,通过分析其在现代软件工程中的应用,揭示其背后的艺术性与科学性,并探讨如何在追求技术创新的同时确保产品的高质量标准。
软件测试不仅仅是技术活动,它融合了创造力和方法论,是软件开发过程中不可或缺的一环。本文首先概述了软件测试的重要性及其在项目生命周期中的角色,随后详细讨论了测试用例设计的创新方法、自动化测试的策略与挑战,以及如何通过持续集成/持续部署(CI/CD)流程优化产品质量。最后,文章强调了团队间沟通在确保测试有效性中的关键作用,并通过案例分析展示了这些原则在实践中的应用。
15 1
|
29天前
|
物联网 测试技术 持续交付
软件测试的艺术与科学:探索自动化测试框架未来技术的融合与创新:探索区块链、物联网和虚拟现实的交汇点
【8月更文挑战第30天】在软件开发的海洋中,测试是确保航行安全不可或缺的灯塔。本文将带领读者揭开软件测试神秘的面纱,深入理解自动化测试框架的重要性和实现方法。通过实际案例,我们将一起探索如何构建高效、可靠的自动化测试系统,从而保障软件质量,提升开发效率。
|
1月前
|
消息中间件 Kafka 测试技术
【Azure 事件中心】使用Kafka的性能测试工具(kafka-producer-perf-test)测试生产者发送消息到Azure Event Hub的性能
【Azure 事件中心】使用Kafka的性能测试工具(kafka-producer-perf-test)测试生产者发送消息到Azure Event Hub的性能
|
1月前
|
Web App开发 JSON 测试技术
精通Postman接口测试:关联技术与自动化实践指南
这篇文章详细介绍了如何使用Postman进行接口测试,包括关联技术、自动化实践,以及如何通过环境变量和全局变量解决接口之间的关联性问题。
36 0
精通Postman接口测试:关联技术与自动化实践指南
|
1月前
|
存储 安全 测试技术
移动应用的安全测试与加固技术深度解析
【8月更文挑战第2天】随着移动互联网的发展,移动应用成为生活必需,但安全威胁也随之加剧。本文深入探讨移动应用的安全测试与加固技术,包括权限访问、数据加密、安全协议、组件安全测试及渗透测试等内容,同时覆盖源代码、运行时环境、数据传输存储及业务逻辑加固等方面,为开发者提供全面指导,以保护用户数据和企业资产安全。
100 12
|
1月前
|
监控 Java 测试技术
实战派必看!Python性能测试中,JMeter与Locust如何助力性能调优
【8月更文挑战第6天】性能优化是软件开发的关键。本文介绍JMeter与Locust两款流行性能测试工具,演示如何用于Python应用的性能调优。JMeter可模拟大量用户并发访问,支持多种协议;Locust用Python编写,易于定制用户行为并模拟高并发。根据场景选择合适工具,确保应用在高负载下的稳定运行。
89 4
|
1月前
|
机器学习/深度学习 人工智能 物联网
探索软件测试的前沿技术与未来趋势
在数字化时代的浪潮中,软件测试作为保障软件质量的重要环节,正经历着前所未有的变革。本文将深入探讨当前软件测试领域的最新技术进展,包括自动化测试、人工智能在测试中的应用、以及云测试平台的发展等。同时,文章也将对软件测试的未来发展趋势进行预测,为读者揭示一个更加智能化、高效化的软件测试新时代。
|
2月前
|
弹性计算 Prometheus Cloud Native
SLS Prometheus存储问题之Union MetricStore在性能测试中是如何设置测试环境的
SLS Prometheus存储问题之Union MetricStore在性能测试中是如何设置测试环境的
|
1月前
|
测试技术 索引 CDN
hyengine wasm业务性能测试问题之测试设备如何解决
hyengine wasm业务性能测试问题之测试设备如何解决