【问题标题】:Elixir recovering erl_crash.dump from a k8s pod with memory issuesElixir 从存在内存问题的 k8s pod 中恢复 erl_crash.dump
【发布时间】:2022-02-11 22:17:10
【问题描述】:

我在 Kubernetes pod 上运行了 Elixir 代码,但由于我怀疑是内存问题而崩溃。一旦 Elixir 崩溃,pod 就会重新启动并且 /opt/ 目录下的任何地方都没有 erl_crash.dump,我怀疑是因为 pod 是短暂的。

我得到的日志信息是,

Crash dump is being written to: erl_crash.dump...done

有没有办法将此文件写入 s3 存储桶或查看其内容以获取有关崩溃发生原因的更详细信息?

【问题讨论】:

    标签: elixir


    【解决方案1】:

    您可以将持久卷附加到 pod - 这样您在重新启动时不会丢失文件,并且您可以在之后检索它。

    【讨论】:

    • 您可以使用 initContainer 将其推送到 S3,而不是向您的启动脚本添加(次要)复杂性。
    【解决方案2】:

    我会考虑的一个选项是将一些节点本地存储安装到 pod 中并设置 $ERL_CRASH_DUMP 指向它。您可以在 rel/env.sh.eex 文件中执行此操作。

    然后使用 DaemonSet pod 监视这些文件的相同卷并将它们推送到 S3。

    【讨论】:

      猜你喜欢
      • 2021-11-25
      • 2021-11-19
      • 2019-10-06
      • 1970-01-01
      • 2022-12-03
      • 2023-03-28
      • 2021-07-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多