K8S 中 Java 应用的 pod 发生 OOM,大家是如何保留 dump 文件并拿下来分析呢

2022-11-17 15:17:47 +08:00
 cmai
2159 次点击
所在节点    Kubernetes
7 条回复
chendy
2022-11-17 15:21:54 +08:00
dump 到某个 volume 里
cmai
2022-11-17 17:23:50 +08:00
@chendy 会不会多个应用出现互相覆盖 dump 文件的情况呢
cmai
2022-11-17 17:28:12 +08:00
或者 dump 到一半 pod 已经被杀死了
mantou99
2022-11-17 17:47:30 +08:00
@cmai 会,kubernetes 的 resource limit 是管理集群分配资源的。OOM 了建议去测试环境找问题,毕竟 OOM 一般都不是突然就炸了,总有个过程
swulling
2022-11-17 17:58:27 +08:00
如果能稳定复现,可以在 prestop 阶段加 dump 命令。dump 到云盘或者 hostpath 。文件名可以用 hostname 拿到容器名称,加上时间戳就不会冲突

之前参考过的一个例子
https://gist.github.com/Pamir/79741ea098dcf473f61bcf45c3ff9b43
swulling
2022-11-17 18:00:09 +08:00
忘了说,这个需要配合一些 soft prevent oom 的方法。避免真的 oom 来不及 dump 。比如

https://github.com/artsy/docker-preoomkiller
cmai
2022-11-18 13:44:29 +08:00
@swulling 多谢,我先了解一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/895963

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX