支付宝的性能测试..doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
支付宝的性能测试.

支付宝的性能测试 一、性能测试支付宝场景介绍   2013年双11过程当中,促销开启的第一分钟内支付宝的交易总额就突破了一亿元,短时间内大量用户涌入的情况下,如何保证用户的支付顺畅,是对支付宝应用系统的一个极大的挑战。   支付宝的性能测试场景分为性能基线测试,项目性能测试。   任意一笔交易过来,我们都需要对交易进行风险扫描,对于有可能是账户盗用的交易,我们会把这笔支付直接拒绝掉,或者通过手机校验码等方式进行风险释放。   我们有一个老的扫描平台A,现在需要构建一个新的扫描平台B,对A中关键技术进行升级,并增加额外的功能。扫描的策略是存储在DB中的,需要通过发布来更新到应用服务器的内存中。   二、性能测试需求分析和方案制定   a. 需求挖掘   1),查看业务方的显性需求。业务方给到的需求为平台B的分析性能要优于平台A的性能。除此之外无其它的需求。   2),挖掘隐性需求.了解业务架构,了解业务流程。为了保证扫描的性能,大量的存储类的需求被设计为异步处理,但是结果类的扫描需要使用到前面落地的数据,那么在系统正常运行时是否会存在落地数据读取不到的问题,在存储抖动时是否会导致后续的分析扫描全部失效?   首先我们领测国际通过运维监控平台拿到平台A的分析性能,RT130ms, TPS35.   基于以上的需求挖掘,我们确认的性能测试场景为   扫描性能场景。(单场景)   发布性能场景。(单场景)   扫描过程中发布性能场景。(混合场景)   b. 技术方案   1).评估我们的系统架构,系统调到链路,定位可能存在问题的瓶颈点。   2).掌握详细技术实现方案,了解具体技术方案可能存在的性能问题。   比如我们是否使用到了脚本动态编译,是Java脚本还是groovy脚本。是否使用到了线程池等异步处理,系统幂等性是如何控制的,数据结构是如何存储与读取的,是决策树还是图型结构。   3).了解系统环境的差异,比如服务器位数、CPU、内存的差异,JDK版本及位数的差异。   基于以上的技术方案,我们确认了上述3个性能测试场景可能存在的性能问题   1. 扫描性能场景   技术方案为扫描引擎drools2升级到了drools5.   性能关注点为请求扫描RT,TPS是否满足我们的需求;JVM Old区内存溢出,Old区内存泄露;GC 频率过高。CPU使用率,load.   2. 发布性能场景   技术方案为规则DB捞取-规则加载-规则引擎切换-规则脚本编译。   性能关注点为CPU使用率,load。JVM Perm区内存溢出,Perm区内存泄露,GC 频率过高。GC 暂停应用时间。   3. 扫描过程中发布性能场景。   性能关注点为请求扫描RT,TPS。规则发布耗时,CPU使用率,load, JVM GC频率。   c. 性能测试方案制订   分布式压测,参数自动化,使用单元测试脚本,接口测试脚本,jmeter脚本等进行压测。   性能结果收集及统计。   性能测试通过标准。   基于以上的分析   1. 扫描性能场景   性能测试方案:   使用jmeter 脚本进行分布式压测,一台master, 三台slaver. 参数自动构建,使用高斯定时器模拟真实场景。   使用jmeter 收集分析性能数据,使用nmon收集服务器性能数据,使用jconsole收集JVM数据。   通过标准:   RT130ms, TPS35.   JVM old 区内无内存泄露,无内存溢出。GC时间间隔30min,暂停应用时间150ms.   CPU70%, load core*1.5。   2. 发布性能场景   性能测试方案:   发布时间间隔时间限制从1min调整为3s, 更快的暴露问题。   使用单元测试类推送发布消息。   服务器shell 脚本收集发布模块性能数据。   使用nmon收集服务器性能数据。   使用jconsole收集JVM数据。   JVM Perm 区内无内存泄露,无内存溢出。GC时间间隔10min,暂停应用时间200ms.   发布时间30S   CPU70%, load core*1.5。   3.扫描过程中发布性能场景   性能测试方案:   使用jmeter脚本进行分布式压测,同时提交发布请求进行发布。   同时使用扫描性能场景和发布性能场景收集数据功能。   通过标准:   RT 扫描性能场景结果RT * 110%.   TPS 扫描性能场景结果TPS * 90%.   发布时间 40s。   d. 发现的问题   1. 扫描性能场景   AVG RT = 473ms, CMS GC = 90ms, 应用暂停时间 = 1s, 因此测试未通过。   问题定位:  

文档评论(0)

stzs + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档