我需要将生成的核心文件总大小限制为磁盘使用量的 10%。我已设置ulimit -c
为无限制,表示每个文件大小都是无限的。然后我使用配置文件
/etc/systemd/coredump.conf.d/custom.conf
来设置
[Coredump]
Storage=external
#Compress=yes
#ProcessSizeMax=2G
#ExternalSizeMax=2G
#JournalSizeMax=767M
MaxUse=10
#KeepFree=15
我以为这个配置文件会将磁盘使用率限制在10%。但核心文件使用率仍然超过10%。
我尝试设置Storage=none
,但仍然生成了核心文件。将 设为ulimit -c
0 将停止生成核心文件。但我希望磁盘使用率为 10%。我有什么遗漏的吗?
答案1
最大使用=10实际上是说如果转储的总大小超过 10 字节,则清理所有较旧的转储。
根据下面链接中提到的源代码: https://github.com/systemd/systemd/blob/4e4e3d97664163267d8295e6f58e0ff8560bea33/src/basic/parse-util.c#L109
看起来 MaxUse 是一个参数,它需要尺寸和不是百分比,看起来这里的手册页没有什么误导性。
MaxUse 仅需要大小,它应该是此集合中提到的后缀之一 -> {“E”、“P”、“T”、“G”、“M”、“K”、“B”、“”} 。
任何不带后缀的数字将默认被视为字节。