天猫大促性能测试实践 耿电

Post on 14-May-2015

732 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

天猫大促性能测试实践

天猫 - 耿电

大纲兴趣性能测试

推动性能优化

性能预案测试

容量性能测试

会后交流议题

引言• 整点秒杀时,有抢到红包吗?有秒到喜欢

的宝贝吗?• 有抢,大家试想下背后有多少人在重复的

刷新页面 ctrl+F5 ,告诉一个真实的数字;宝贝详情页浏览高峰:

17.2万 /秒

性能项目模式• 面对应接不暇的需求• N 多的会议

• ‘ 拒绝’硬性需求主动出击• 兴趣来 Owner 和挑战

产品性能切入点

性能测试范畴• 性能稳定《 Code review 规范》• 静态代码扫描( FindBugs 定制性能)• 动态代码性能测试• 线上挖掘性能 Bug 和优化

多维度性能

大纲兴趣性能测试

推动性能优化

性能预案测试

容量性能测试

会后交流议题

性能优化方法 ( 简 )

优化远程调用

•减少远程调用,尽量使用本地调用

•批量接口代替循环调用

数据共享

•使用线程缓存共享线程级别数据

•使用分布式缓存共享应用级别数据

使用高效API

•选择高效API来优化程序(例如字符串拼接、编解码)

•XML、JSON解析,序列化/反序列化的开源包选择

JVM优化

•优化堆内存结构、比例

•调整GC类型,JVM调优,线程

性能瓶颈 CheckList

• LinkedBlockingQueue 队列 1 任务调度

• EventSendMulticaster – 发送事件• 队列节点总数为 378002760/

( 1720+32 ) =215755 个• 堆内存由 300M 升到

400M , FGC=110 次 /h

<bean id="eventSendMulticaster" class="com.taobao.inventory.core.event.controll.EventSendMulticaster"> <property name="taskCount" value="15"></property>

性能优化后:解决 FGC频繁问题,性能提升 3倍

案例 - 线程阻塞和性能优化

性能优化工具简介Btrace 、 TritonMAT ( Memory Analyzer Tool )Jprofiler

YourKit

TDA(Thread Dump Analyzer)

……

Triton• 功能丰富(响应时间、瓶颈分析、上下文分析、堆栈死锁检查

等)• 动态性(非代码侵入,快速分析、不影响性能)• 实时性、交互性(使用方便,学习成本低)• 专利:《一种基于字节码分析和 Instrument 的代码性能消耗分析

方法》

大纲兴趣性能测试

推动性能优化

性能预案测试

容量性能测试

会后交流议题

预案类型• 限流• 降级• 被动• 防攻击

预案操作

• 单 & 组合• 手动 & 自动• 业务 & 性能• Web& 服务

预案介绍

预案性能分析策略

预案(功能 OK )

性能环境( Test env)1. 产品业务流程2. 产品用户体验

1. 本应用性能稳定影响2. 是否触发性能 bug

3. 上下游性能关联影响

线上环境(Online)1. 本应用性能稳定影响2. 是否触发性能 bug

3. 上下游性能关联影响

1. 产品业务流程2. 产品用户体验

3. 用户利益

预案性能测试

大纲兴趣性能测试

推动性能优化

性能预案测试

容量性能测试

会后交流议题

容量性能测试• 单接口性能(容量)• 应用性能(容量)• 核心产品链路性能• 水位、预警、预测,告警通知,扩容;

容量规划• 容量监控 - 实时透明• 容量预警 - 告警值班• 容量预测 - 模型预估• 容量扩容 – 充分 (N)余量

交流议题• 性能测试烦恼问题,以及性能发展趋势

• 如何建设适宜的性能测试平台• 轻量级性能测试• 如何控制性能测试成本?

旺旺:耿电邮箱: gengdian@tmall.com微博:亚拉冈王 _ 耿电

天猫测试博客: http://tmalltesting.com/

top related