没有合适的资源?快使用搜索试试~ 我知道了~
首页京东金融性能测试指南:从实践到调优
京东金融性能测试指南:从实践到调优
![](https://csdnimg.cn/release/wenkucmsfe/public/img/star.98a08eaa.png)
"网银在线性能测试指南(京东).pdf" 这篇《网银在线性能测试指南》是京东金融发布的一份详细文档,旨在为读者提供性能测试的方法、实践、分析与调优的全面指导。该指南分为四个主要部分,涵盖了性能测试的全过程,从理论到实践,再到工具的使用,为读者构建了一个完整的性能测试框架。 在"性能测试方法与实践"章节中,首先明确了性能测试的目的,即发现系统的瓶颈并优化其性能,确保系统在高负载下的稳定性和效率。接着,它详细介绍了各种性能测试类型,如负载测试、压力测试、耐久测试等。性能测试的基本过程包括需求分析、测试设计、执行测试、结果分析和调优。此外,文档还讨论了性能评估模型,其中包括闭环流程图、TPS(每秒事务处理量)计算、影响因子、响应时间和稳定性要求。性能测试环境的构建和数据准备也是关键步骤,包括选择合适的压力工具和部署资源监控工具。 在"性能分析与调优"章节,文档深入探讨了性能分析的目的和方法,如识别性能瓶颈的征兆、解读性能数据、定位问题的技巧。同时,它还提供了性能调优的策略和步骤,强调了设计、算法、代码、JVM、网络、系统和数据库等多个层面的调优方法,并给出了具体的配置项调优参考。 "性能测试模板"部分提供了性能测试报告的范例和模板,帮助读者规范测试报告的编写,确保测试结果的可读性和有效性。 这份指南对于进行网银或金融系统性能测试的专业人士来说,是一份宝贵的参考资料,它不仅提供了理论指导,还包含了实际操作的实践经验,有助于提升测试效率和质量,确保系统在面临大量用户访问时仍能保持高效稳定。通过学习和应用这份指南中的知识,读者可以更好地理解和解决性能测试过程中遇到的各种问题。
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/12792619/bg10.jpg)
2.4.7 性能测试环境要求
为了更准确的预测性能,我们必须尽可能的保证性能测试环境的稳定。
性能测试环境要求真实的物理机,一般不能是虚拟机。
压力工具与被测环境不能在同一台机器部署。
尽可能的利用晚上无人操作的时间来做性能测试。
测试环境准备是一个很重要又很繁琐的工作,它的效率提升依赖于我们的环境搭建平台的建设。
2.4.8 并发量与吞吐量(TPS)的关系
并发量(或叫并发用户数):是指同一时间点对业务功能同时操作的用户数。
吞吐量(TPS):一段时间内系统处理用户的请求数量。
虽然两者关系并不紧密,但是往往会有同学将它们搞混淆。其实我们可以用多线程模型来解释他们,并发量就相当
于线程数,吞吐量就是所有线程处理请求数之和。
通常我们做性能测试主要考察和评估的是 TPS,而并发量是一个相对较虚的概念,比如我们说一个系统支持同时
1k 人操作,一般不在评估的范围内。
2.4.9 线上性能数据采集
为了闭环需要,线上抽样一台机器,采集每天的 PV 数据,每隔 5 分钟采集一次,每天就有 60/5 * 24 = 288 个点。
每个点需要采集
Linux
资源、
JVM
、
IO
以及
PV
数据,这些数据将成为将来性能评估的重要依据。
平台化也是趋势,不过目前还不确定怎么做。
定期消除异常数据噪音,以月为单位可观察规律变化。
2.5 性能测试需求分析
对于性能测试,一般来说工具的使用不是大的问题,问题是前期的需求分析,要不要做性能测试?性能测试的
目的是什么?要做或不做性能测试的理由是什么?如何来做性能测试?这些问题的答案都是通过分析性能测试需求
得到的。以下将阐述性能需求分析的一些基本方法。
![](https://csdnimg.cn/release/download_crawler_static/12792619/bg11.jpg)
2.5.1业务调研
为了合理评估与制定系统的性能指标,业务调研是一个必备的过程,业务调研主要包含以下几个方面的内容:
1. 系统信息调研
系统类型:系统的基本特性,如交易处理型系统、数据处理型系统等
架构部署:系统的整体架构、服务器部署方式
技术信息:系统运行平台、数据库产品、使用的中间件、协议及通讯方式等
业务信息:支持的业务类型、业务范围与功能、与其它系统的业务关系等
系统历史运行情况:目标
TPS
,用户数、
PV
等数据
系统数据规模:将来系统使用规模,历史系统数据规模
2. 业务信息调研
基本业务功能:系统的基本业务概念以及系统的业务种类与具体功能
关键业务逻辑处理流程:关键业务的业务流程、交易路径、交易数据、交易流程与时序图
交易列表:调查业务系统全部交易清单,了解交易的组合关系、执行顺序等
交易量信息:在不同时间粒度下统计单个交易处理量以及总交易量信息
业务目标/业务拓展计划:目前的生产业务量和用户数以及系统预期业务目标和本次测试预期业务指标
3. 文档资料调研
功能规格说明书
系统设计文档
生产运营统计
前期系统测试资料
业务调研涉及到的角色有以下几个:业务人员、开发人员、客户(如京东)、产品人员、运维人员、DBA 等。
通过业务调研至少可以得到以下几个方面的产出:
项目背景
系统架构说明
系统拓扑说明
测试范围说明
交易路径描述
需要测试的特性
不需要测试的特性
![](https://csdnimg.cn/release/download_crawler_static/12792619/bg12.jpg)
2.5.2性能需求评估
在实施性能测试之前,需要对被测项目做相应的评估。主要目的是明确是否需要做性能测试和确立性能点,明确该
测什么、期望值是多少。测试期望值也会根据情况评估,要求被测系统能满足将来一定时间段的压力。
判断是否进行性能测试可以从以下几个方面进行思考:
a、从业务角度来分析,如果一个项目上去后使用的人数比较多,量比较大,就有做性能测试的必要,反之,如果
一个项目上线后,没有几个人在用,无论系统多大,设计如何复杂,并发性的性能测试是没有必要做的,前期可以
否决。
b
、从系统架构角度来分析,如果一个系统采用的框架是老的系统框架,只是在此框架上增加一些应用,其实是没
有必要做性能测试。如果一个系统采用的是一种新的框架,可以考虑做负载测试。
c、从实时性角度来分析,如果一个项目要求某个功能的响应时间,这个有作并发测试的可能性,在大并发量的场
景下,查看这个功能的响应时间。
d、从数据库角度分析,很多情况下,性能测试是大数据量的并发访问、修改数据库,而瓶颈在于连接数据库池的
数量,而非数据库本身的负载、吞吐能力。这时,可以结合 DBA 的建议,来决定是否来做性能测试。
如果要进行性能测试,接下来我们就需要确定相应的性能点。主要从以下 4 个维度进行确定:
1. 关键业务。
首要维度,是确定被测项目是否属于关键业务,有哪些主要的业务逻辑点,特别是跟交易相关的功能点。例如快捷
签约、交易等接口。如果项目(或功能点)不属于关键业务(或关键业务点),则可转入第二、三、四个维度。
2. 日请求量。
第二个维度,是界定被测项目各功能点的日请求量。如果日请求量很高,系统压力很大,而且又是关键业务,该项
目需要做性能测试;而且其关键业务点,可以被确定为性能点。
3. 逻辑复杂度。
第三个维度,是判定被测项目各功能点的逻辑复杂度。如果一个主要业务的日请求量不高,但是逻辑很复杂,则也
需要通过性能测试。原因是,在分布式方式的调用中,当某一个环节响应较慢,就会影响到其它环节,造成雪崩效
应。
4. 运营推广计划。
第四个维度,是根据运营的推广计划来判定待测系统未来的压力。未雨绸缪、防患于未然、降低运营风险是性能测
试的主要目标。被测系统的性能不仅能满足当前压力,更需要满足未来一定时间段内的压力。因此,事先了解运营
推广计划,对性能点的制定有很大的作用。
例如,运营计划做活动,要求系统每天能支撑多少 PV、多少 UV,或者一个季度后,需要能支撑多大的访问量等
等数据。
![](https://csdnimg.cn/release/download_crawler_static/12792619/bg13.jpg)
当新项目(或功能点)属于运营重点推广计划范畴之内,则该项目(或功能点)也需要做性能测试。
5.其它
以上 4 个评估维护,是相辅相成、环环相扣的,它们合成一个维度集。在实际工作中应该具体问题具体分析。例
如,当一个功能点不满足以上 4 个维度,但又属于内存高消耗、CPU 高消耗时,也可列入性能测试点行列。
2.5.3 性能测试指标
性能需求分析一个很重要的目标就是需要确定后期性能分析用的性能指标,性能指标有很多,可以根据具体项
目选取和设定,而具体的指标值则需要根据业务特点和上述的一些方法进行设定。性能评估模型章节中也给了一些
指标换算的基本方法。
2.5.3.1性能指标分析
判断一个系统的性能通常会取决于这三个最重要的性能指标:
吞吐率(TPS)
响应时间(RT)
系统资源利用率(Load)
通常经验告诉我们,它们三者的趋势会如下图所示:
当处于轻负载区的时候,压力有多大,吞吐率就有多大。
一旦进入重负载区,就算是再怎么努力可能也会是白费。
如果到了崩溃区,那我们的努力就开始有反效果。
同样,对于我们做性能测试来讲,我们的目的就是找出这三个区域的分界线来。
![](https://csdnimg.cn/release/download_crawler_static/12792619/bg14.jpg)
所以在设计上,我们需要不断地递增负载来观察和评估系统性能情况。
比如下表(以下数据为伪造):
TPS
RT(AVG/MIN/MAX)
Load(cpu idle/mem/io)
100
50/15/80
93/8/2
200
50/18/90
91/8/2
400
55/18/145
87/9/4
800
130/25/560
70/10/14
1500
250/58/4488
48/11/75
可以看出,TPS 低于 400 的时候基本属于轻负载区,400 到 800 之间属于重负载区,高于 800 基本上属于崩溃区
了。
2.5.3.2 性能指标详解
该章节详细介绍性能测试过程中需要关注的性能指标,以及性能指标的范围。本指南中的所有的性能指标数据
均可用指南中的监控工具进行收集。详细方法见监控工具章节。
2.5.3.2.1 业务性能指标
指标名
指标说明
采集方法
并发用户数
在同一时刻与服务器进行了交互的在线用户数量
Jmeter/loadrunner
响应时间
客户发出请求到得到响应的整个过程的时间。一般他可以分为三部分:呈现
时间,数据传输时间和系统处理时间
Jmeter/loadrunner
吞吐量
一次性能测试过程中网络上传输的数据量的总和
Jmeter/loadrunner
每秒处理事务
数(TPS)
每秒钟系统能够处理事务或交易的数量,它是衡量系统处理能力的重要指标。
Jmeter/loadrunner
点击率
点击率可以看做是 TPS 的一种特定情况。每秒钟用户向 web 服务器提交的
HTTP 请求数。
Jmeter/loadrunner
剩余160页未读,继续阅读
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/9fffe635d44d472992814661dcb197f3_u011608531.jpg!1)
在路上很酷
- 粉丝: 6379
- 资源: 50
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 计算机系统基石:深度解析与优化秘籍
- 《ThinkingInJava》中文版:经典Java学习宝典
- 《世界是平的》新版:全球化进程加速与教育挑战
- 编程珠玑:程序员的基础与深度探索
- C# 语言规范4.0详解
- Java编程:兔子繁殖与素数、水仙花数问题探索
- Oracle内存结构详解:SGA与PGA
- Java编程中的经典算法解析
- Logback日志管理系统:从入门到精通
- Maven一站式构建与配置教程:从入门到私服搭建
- Linux TCP/IP网络编程基础与实践
- 《CLR via C# 第3版》- 中文译稿,深度探索.NET框架
- Oracle10gR2 RAC在RedHat上的安装指南
- 微信技术总监解密:从架构设计到敏捷开发
- 民用航空专业英汉对照词典:全面指导航空教学与工作
- Rexroth HVE & HVR 2nd Gen. Power Supply Units应用手册:DIAX04选择与安装指南
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)