【问题标题】:Modify core dump disk space utilization per node修改每个节点的核心转储磁盘空间利用率
【发布时间】:2020-07-10 15:07:47
【问题描述】:

根据 coredump.conf 的官方手册页文档,可以通过将 MaxUse 部分更改为 X% 来修改 Kubernetes 中每个节点的核心转储磁盘空间利用率,默认为 10%。

https://man7.org/linux/man-pages/man5/coredump.conf.5.html

我做了以下事情:

  • 我尝试的第一个解决方案:修改 /etc/systemd/coredump.conf,在 MaxUse 之前删除 # 并将其更改为 20%

    cat /etc/systemd/coredump.conf
    MaxUse=20%
    

    之后,我运行“sudo systemctl daemon-reload”以反映更改,但没有成功。

  • 我尝试的第二个解决方案:添加/etc/systemd/coredump.conf.d/custom.conf 以覆盖/etc/systemd/coredump.conf。此选项在此处指定:https://wiki.archlinux.org/index.php/Core_dump

    [Coredump]
    MaxUse=20%
    

    之后,我运行“sudo systemctl daemon-reload”以反映更改,但它不起作用。 我做了多个核心只是为了检查两种解决方案是否都有效,但没有奏效:

    我有核心我的测试应用程序,只是为了获得大核心,我使用了下面提到的命令:

    $ sudo dd if=/dev/zero of=abc.xz bs=1024 count=10240000
    

    在测试这个时,我的核心转储目录 /var/lib/systemd/coredump/ 有超过 150G 的核心。

【问题讨论】:

    标签: linux kubernetes linux-kernel systemd coredump


    【解决方案1】:

    看起来像 docs are misleading 并说它默认为 MaxUse 为 10%。但似乎systemd code 表明它是按字节、千字节、兆字节等进行解析的。您可以尝试以下操作:

    [Coredump]
    MaxUse=20G
    

    【讨论】:

    • 我尝试过使用 MaxUse=20G 但它不起作用。我能够创建总大小累计超过 20G 的核心转储。
    • 你能详细说明这个sudo dd if=/dev/zero of=abc.xz bs=1024 count=10240000 是如何创建核心转储的吗?
    • 它基本上使用 /var/lib/systemd/coredump/ 目录中的“dd” linux 命令创建了一个假的大型 coredump 文件,因为我没有创建大型核心转储的方法。我的测试应用程序只是创建了一个几 Mb 的核心转储。
    • 我不认为 dd 会从内核触发核心转储机制,你为什么这么认为?
    • 我认为这是一个有效的观点,让我测试一下,我会给你结果:)
    猜你喜欢
    • 2021-10-24
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    • 2015-10-31
    • 1970-01-01
    • 1970-01-01
    • 2019-06-06
    • 1970-01-01
    相关资源
    最近更新 更多