您能否在 Kubernetes 上的 .NET Core 中针对 OOM 异常触发自动内存转储?

Goo*_*ose 5 memory containers out-of-memory kubernetes .net-core

我试图找到一种方法来在容器遇到 OOM 异常时触发内存转储。问题是,当发生这种情况时,容器会重新启动,因此我们无法获得有效的转储。我看到了一篇类似的文章,概述了如何在 Java 中执行此操作,但我不确定是否/如何将其转换为 .NET Core。

Mou*_*ick 1

您有两种方法可以做到这一点。

对于这两种工作方式,.Net Core 需要支持一个告诉它在崩溃时转储的标志,以及一个向其传递转储位置路径的标志。

  1. 在微服务 Pod 上有一个带有共享存储的 Sidecar。在 sidecar 中,有一个脚本来监视存储并将转储到其中的文件复制到 s3 等位置。我猜这是 Java 链接中提到的

  2. 将一个存储公共存储附加到微服务的所有 Pod,类似于 NFS,在亚马逊的例子中是 EFS。在部署中使用该 efs 并将 .Net 转储到该存储。然后只需将转储导出即可,您可以通过调试吊舱或连接到 EFS 的跳转主机来完成

  • 感谢您的回复 - 我想围绕“崩溃转储”部分还有更多问题。我没有找到在 .NET Core 中触发它的方法 - 你知道有什么方法吗? (2认同)