首页 > 解决方案 > 当内存达到特定值时,Kubernetes会捕获内存转储?

问题描述

我的一些 pod 运行一个容器,有些运行两个。我已经Xmx为每个容器分配了 4GB,我想要的是如果容器达到 3GB,Kubernetes 会进行内存转储。

可行吗?

标签: javadockerkubernetes

解决方案


也许您可以按照以下方式进行操作。

  1. 创建一个shell脚本

    • 使用它来检查您的进程(看起来像 Java 进程)并提取已使用的内存并触发内存转储。
    • 正如@Matt 所提到的,这是一个通用的解决方案
      • 使用ps命令设置进程
      • 利用jcmd <PID> GC.heap_dump <output-file>
  2. 将此文件添加到您的 docker 映像中

  3. 然后添加一个 CMD 以在后台运行 shell 脚本并在前台运行您的应用程序。


推荐阅读