memory - 你能在 Kubernetes 上的 .NET Core 中触发 OOM 异常的自动内存转储吗?

标签 memory kubernetes .net-core containers out-of-memory

我正在尝试找到一种在容器遇到 OOM 异常时触发内存转储的方法。问题是发生这种情况时,容器会重新启动,因此我们无法获得有效的转储。我看到了similar article outlining how to do it in Java ,但我不确定是否/如何将其转换为 .NET Core。

最佳答案

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

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

  • 在微服务 pod 上有一个带有共享存储的边车。在 sidecar 中,有一个脚本来监控存储并将转储到的文件复制到 s3 之类的位置。我猜这是 Java 链接
  • 中提到的那个。
  • 有一个存储公共(public)存储连接到微服务的所有 pod,比如 NFS,在亚马逊的例子中是 EFS。在您的部署中使用该 efs 并将 .Net 转储到该存储。然后只需通过调试 pod 或连接到 EFS
  • 的跳转主机来获取转储即可。

    关于memory - 你能在 Kubernetes 上的 .NET Core 中触发 OOM 异常的自动内存转储吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62332212/

    相关文章:

    ios - 为什么在 ARC 中发送消息会导致保留周期警告,但属性集不会?

    kubernetes - 在Vagrant下使用Kubernetes公开用于主机的Traefik Web UI

    post - 在k8s中是否有类似httpPost的内容

    c# - 从电子邮件列表中获取唯一域的列表

    msbuild - dotnet 发布命令未为 ASP.NET Core Web 应用程序项目创建 zip 文件包

    c - Memcpy 与 memset 耗时相同

    c - 越界写入并不总是导致错误

    C++:将映射文件读入矩阵的快速方法

    python - 使用 kubernetes python cli 列出命名空间中的证书

    asp.net-web-api - JWT token 过期时间失败 .net core