19 | 生成订单信息之一:应用JDBC池优化和内存溢出分析
高楼
你好,我是高楼。
在这节课中,我们来看一下生成订单接口的基准场景是什么结果。
你将看到一些重复的问题,比如 SQL 的问题定位,虽然具体的问题不同,但我们的分析逻辑没有区别,我会简单带过。同时,你也会看到一些新的问题,比如 JDBC 池增加之后,由于数据量过大导致 JVM 内存被消耗光;批量业务和实时业务共存导致的锁问题等。这节课,我们重点来看看这样的问题如何进一步优化。
话不多说,开整!
场景运行数据
对于生成订单接口,我们第一次试执行性能场景的结果如下:
从场景执行的结果来看。40 个压力线程只跑出来 50 多的 TPS,响应时间也蹭蹭蹭地跑了近 700ms。这显然是一个非常慢的接口了。
从这样的接口来看,我们选择这个项目算是选择对了,因为到处都是性能问题。
下面我们就来一步步分析一下。
架构图
前面我们做过多次描述,画架构图是为了知道分析的路径。所以按照惯例,我们仍然把架构图列在这里。
由于这个接口比较复杂,架构图看起来有点乱,我又整了一个简化版本:
Order 服务是这个接口的核心,因此,你可以看到我把 Order 相关的服务都筛选了出来,这样我们就能很清楚地知道它连接了哪些东西。
下面我们来拆分响应时间。
拆分响应时间
因为在场景运行的时候,我们看到响应时间比较长,所以我们用 APM 工具来拆分一下:
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文通过实例分析了JDBC池优化和内存溢出问题的解决方法。首先描述了生成订单接口的性能问题,包括响应时间长、TPS低等情况,并介绍了对接口进行拆分响应时间和全局监控分析的过程,发现了Order服务中的数据库连接池问题。作者提出了通过增加JDBC池的连接数来解决这一问题,并给出了相应的配置修改建议。在修改JDBC池后,文章还描述了压力场景的执行数据变化情况,指出了TPS的上升趋势和响应时间的不稳定性。最后,文章提出了需要进一步优化的问题,并展望了下一阶段的分析方向。 通过分析JDBC池优化和内存溢出问题的解决方法,本文为读者提供了宝贵的技术经验。文章提供了详细的分析过程和解决方案,对于需要解决类似问题的技术人员具有一定的参考价值。文章内容涉及了JDBC池优化、内存溢出分析和SQL优化等技术问题,为读者呈现了一场技术挑战与解决的过程。文章通过实例分析,突出了JDBC池优化和内存溢出问题的解决方法,为读者提供了宝贵的技术经验。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《高楼的性能工程实战课》,新⼈⾸单¥59
《高楼的性能工程实战课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(7)
- 最新
- 精选
- 张东炫1.VM Thread 线程消耗 CPU 高的异常,查看JAVA gc 是否合理 2.innodb_trx表提供了当前innodb引擎内每个事务的信息(只读事务除外),包括当一个事务启动,事务是否在等待一个锁,以及交易正在执行的语句
作者回复: 理解合理。
2021-05-064 - jy老师你好,查了下资料,bulk_insert_buffer_size是用于myisam存储引擎,我看你的建表sql,是innodb,请确认下呢?
作者回复: bulk_insert_buffer_size是作用于myisam存储引擎的。在insert的时候,会用到临时表,而临时表是在myisam引擎中的,所以这个参数会对insert起到优化作用。
2021-07-282 - 阿嬷老师,架构图是用什么画的?
作者回复: 这个文章中的架构图是skywalking自动生成的,不用画。
2022-02-14 - steveaix服务器的java路径下没找到jstack
作者回复: 你看你用的jdk中有什么能打印栈的工具。只要能打印栈就行,不一定要是jstack。
2021-09-06 - jy1、第二阶段里面 在查看 Order 服务的 top 时,占用cpu最多的是pid 29349 ,为什么后面是jstack -l 1,而不是jstack -l 29349? 2、“当批量业务和实时业务同时出现在同一个数据库中,并且是对同样的表进行操作,这时,你就得考虑一下架构设计是否合理了。” 请问下应该如何设计架构呢? 谢谢
作者回复: 1. 是要进入到容器中去看,容器中的进程id是1,这里应该描述的更精准一点。我改改去。 2. 分库分表、读写分离,从库做批量。
2021-07-16 - zwm从上图来看,系统资源并没有完全用起来,这个接口显然还有优化的空间 老师这个是怎么看出来的,就通过TPS和响应时间?
作者回复: 这里也看了系统资源,不过我没有截图。
2021-07-13 - Hant高老师,怎么判断GC正不正常呀?
作者回复: 看gc对tps产生了多大的影响。
2021-06-27
收起评论