文章插图
近年来通天塔的业务数据量和用户流量都呈现出了非常迅猛的增长趋势,为了解决历史架构设计中的不足,应对诸多因素引发的风险并保证通天塔平台的稳定运行,通天塔后端组专项成立了一个“通天塔后端技术优化组”,号召并鼓励团队每个人积极参与进来,全盘分析和梳理、技术设计和技术Review、形成技术优化需求、排期、自测和验证效果、Code Review、制定灰度和上线计划、上线、总结经验并形成未来可借鉴的方法 。
本文主要聚焦在总结通天塔性能优化的经验,为聚合服务的性能优化提供些参考 。
优化效果
本次通天塔性能优化对比了优化前后的数据,约有10%~30%的提升:
优化原则
性能优化主要按下图所示“三步走” 。
通过测试收集性能指标数据,具体分析产生性能问题的原因,对症下药解决性能问题 。
从长期看,这样的优化过程是持续进行、反复迭代的 。但是短期看,我们同样需要一些阶段性的里程碑来提升信心 。
因此,在做通天塔性能优化时,我们制定了一些优化标准 。例如:接口响应指标AVG、TP999提升10~20%,吞吐率提升(当时没有定明确的量化值,主要考虑到响应提升间接也能带来一定的吞吐率提升) 。
并且,我们始终要坚持一些基本的系统优化原则:
1.以不影响业务功能为前提 。保证优化前后逻辑的一致性,从理论到实践,通过严格的论证和全面的测试 。
2.注重优先级 。优先考虑一些性价比高的优化,性价比太低的放到最后,甚至干脆就不考虑了,节省研发成本 。
3.奥卡姆剃刀原则 。即简单性原则 。新产生的性能问题的原因很可能是最近的迭代造成的;非必要的功能、代码,能不加就不加 。
性能测试
测试是为了收集性能数据,为后续分析调优提供基础 。通天塔在优化过程中,主要采取了两类性能测试方法:
1.微基准测试:针对方法级别,主要使用JMH等工具检测方法的吞吐和延迟 。
2.宏基准测试:针对系统级别,主要使用forcebot(公司内部工具)压测系统整体的性能(CPU、内存、IO、JVM、延迟、吞吐等等) 。开源的ab,jmeter等性能测试工具也能达到类似的效果 。
对于性能指标,目前我们主要采集了如下的一些指标:
- CPU、内存、IO等系统指标
- 接口延迟、QPS等
- JVM堆、栈等指标采样
- 调用链延迟分析工具等
收集到系统资源、JVM、应用等性能指标后,对各类性能指标的问题表现进行分析,简单总结了以下一些点:
CPU高:
- 计算任务重
- 正则表达式回溯
- GC频繁
- 上下文切换多
- 大量异常填充栈信息
- 创建对象多
- 内存泄漏
- STW过多
- 日志记录影响
- 传输数据量大
- 串行IO设计影响
- 上游尾延迟影响
调优策略
这里主要介绍对问题表现的分析后进行的一些系统优化 。
1 优化设计
设计层面的优化,需要我们对自身的应用架构足够熟悉,缩小可能存在瓶颈的范围 。然后再借助压测、调用链分析等工具,进一步确诊问题点 。
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- 为什么尽量不要用花呗 开通花呗有风险吗
- 丑苹果是大凉山的好还是昭通的好
- 零钱通安全吗 零钱通是干嘛的
- 什么是京东公益众筹 京东公益众筹怎么发起
- 京东有些商品标识广告 京东618商品打标是什么意思
- 兰交大考研率
- 套白条去哪里找商家,京东白条秒到几个点
- 什么是通假字
- 堵奶了如何自己疏通 堵奶了怎么疏通
- 新鲜出炉,2021年直通车最新玩法全解析