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

作者/分享人:李艳鹏
易宝支付产品中心首席架构师,著有《分布式服务架构:原理、设计与实战》一书,曾经在花旗银行、甲骨文、新浪微博等大型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 问题的现实的全过程。

已有95人预订
预订达标
文章出炉
交流日期
     
06月03日
06月20日
06月27日 20:30
查看文章评论/提问
虎啸山河
宋顺
不太严谨,最大进程数是1024,但是通过jstack打印出来的是1201,两者对不上。文中还错把1024写错为最大是1204。。。
李艳鹏: 感谢提出问题,差三个线程没对上现场就发现了,后面也解释原因了,应急目标是迅速回复服务,而不是查找每一个问题的原因,至于笔误需要改正
Mike
分析的很透彻
zorro
分析的很透彻
你可能还喜欢
Service Mesh 在华为公有云的实践
田晓亮
利用 OpenCV 和 Caffe,根据大合影构造“平均脸”
李烨
从零开始,搭建 AI 音箱 Alexa 语音服务
Mike
Web 安全恩仇录:再谈逻辑漏洞
肖志华
TensorFlow 分布式原理与应用实践
刘光聪
编程和数学基础不佳如何入门人工智能?
赵宁|Neal
微信扫描登录