如何在生产环境排查 OutOfMemoryError (OOM)

作者/分享人:李艳鹏
向 Ta 提问
易宝支付产品中心首席架构师,著有《分布式服务架构:原理、设计与实战》一书,曾经在花旗银行、甲骨文、新浪微博等大型IT互联网公司担任技术负责人的工作,现专注大规模高并发的线上和线下支付平台架构的规划与落地,负责交易、支付、渠道、出款、风控、对账等核心支付系统的设计与实现,在移动支付、聚合支付、扫码支付、标记化支付等业务场景上有产品应用架构规划与落地的实践经验。

我们都知道 JVM 的内存管理是自动化的,Java 语言的程序指针也不需要开发人员手工释放,JVM 的 GC 会自动进行回收,但是,如果编程不当,JVM 仍然会发生内存泄漏,导致 Java 程序产生 OutOfMemoryError (OOM) 错误。产生 OOM 错误的原因包括以下内容。

  • java.lang.OutOfMemoryError:Java heap space.
  • java.lang.OutOfMemoryError:PermGen space.
  • java.lang.OutOfMemoryError:unable to create new native thread.
  • java.lang.OutOfMemoryError:GC over- head limit exceeded.

本场 Chat 聚焦在作者花费几天时间在线上排查和解决 OOM 问题的现实的全过程。

已有112人预订
预订达标
文章出炉
交流日期
     
17.06.03
17.06.20
17.06.27 20:30
查看文章评论/提问
虎啸山河
宋顺
不太严谨,最大进程数是1024,但是通过jstack打印出来的是1201,两者对不上。文中还错把1024写错为最大是1204。。。
李艳鹏: 感谢提出问题,差三个线程没对上现场就发现了,后面也解释原因了,应急目标是迅速回复服务,而不是查找每一个问题的原因,至于笔误需要改正
Mike
分析的很透彻
zorro
分析的很透彻
你可能还喜欢
支付平台架构设计评审核心要点与最佳实践
李艳鹏
前端大师炼成记:初中级前端成长指南
差不多先生
软件架构发展历程分享
kimmking
从微信支付宝支付接口设计谈 API 接口产品的设计经验和最佳实践
李艳鹏
微服务开发中的数据构架设计
陈伟荣
如何高效开启你的顾问人生模式
加兴
微信扫描登录