如何轻松设置Ubuntu ulimit限制核心转储文件大小以避免资源浪费?
- 内容介绍
- 文章标签
- 相关推荐
为什么需要限制主要转储文件大小?
在Linux服务器上。主要转储文件是程序崩溃时自动生成的内存快照,用于调试和故障分析。但问题来了的观点是,
- 磁盘爆满风险一个大型应用崩溃可能产生几GB甚至更大的转储文件,瞬间占满你的根分区!
- 性能下降写入几十GB的转储文件会导致IO阻塞,其他服务响应变慢或直接挂掉
- 安全隐患转储文件可能包含敏感数据。暴露在磁盘上存在泄密风险
- 无用占用资源90%的情况下我们压根不会调试这些转储文件,却让它白白占着硬盘空间!
当前设置临时生效?这也太不方便了吧,
ulimit -c 100M
⚠️ 警告 ⚠️ 这个命令只对当前终端会话有效! 关闭终端后设置就消失了...要永久生效需要深入配置程序参数。下面教你解决掉这个问题,
从第一步先来看,检查当前限制值
ulimit -c
- 输出为0? 表示主要转储被完全禁用
- 非零值? 当前允许的最大转储大小
- "unlimited"? 天呐,这代表着任何崩溃都可能吃光你的硬盘空间!立刻限制它,
Ubuntu不同版本配置方法全技巧!
A. 对于Systemd程序✅ 最新推荐方式 ✅
DefaultLimitCORE=100M
替换100M为你需要的最大值
至于支持单位。B/KB/MB/GB/TB/PB/EB/ZB/YB
B. 对于SysVinit传统程序⚠️ 旧版本警告 ⚠️
-
$ sudo vim /etc/security/limits.conf * soft core unlimited * hard core 1G
$ sudo service procps restart $ sudo sysctl vm.core_pattern=/var/crash/%e.%t.%s.core $ mkdir -p /var/crash && chmod 777 /var/crash
💡 高级技巧: 要完全禁用主要转储可以执行: echo "* hard core 0" | sudo tee -a /etc/security/limits.conf> /dev/null 接下来重新启动器即可。
为什么需要限制主要转储文件大小?
在Linux服务器上。主要转储文件是程序崩溃时自动生成的内存快照,用于调试和故障分析。但问题来了的观点是,
- 磁盘爆满风险一个大型应用崩溃可能产生几GB甚至更大的转储文件,瞬间占满你的根分区!
- 性能下降写入几十GB的转储文件会导致IO阻塞,其他服务响应变慢或直接挂掉
- 安全隐患转储文件可能包含敏感数据。暴露在磁盘上存在泄密风险
- 无用占用资源90%的情况下我们压根不会调试这些转储文件,却让它白白占着硬盘空间!
当前设置临时生效?这也太不方便了吧,
ulimit -c 100M
⚠️ 警告 ⚠️ 这个命令只对当前终端会话有效! 关闭终端后设置就消失了...要永久生效需要深入配置程序参数。下面教你解决掉这个问题,
从第一步先来看,检查当前限制值
ulimit -c
- 输出为0? 表示主要转储被完全禁用
- 非零值? 当前允许的最大转储大小
- "unlimited"? 天呐,这代表着任何崩溃都可能吃光你的硬盘空间!立刻限制它,
Ubuntu不同版本配置方法全技巧!
A. 对于Systemd程序✅ 最新推荐方式 ✅
DefaultLimitCORE=100M
替换100M为你需要的最大值
至于支持单位。B/KB/MB/GB/TB/PB/EB/ZB/YB
B. 对于SysVinit传统程序⚠️ 旧版本警告 ⚠️
-
$ sudo vim /etc/security/limits.conf * soft core unlimited * hard core 1G
$ sudo service procps restart $ sudo sysctl vm.core_pattern=/var/crash/%e.%t.%s.core $ mkdir -p /var/crash && chmod 777 /var/crash
💡 高级技巧: 要完全禁用主要转储可以执行: echo "* hard core 0" | sudo tee -a /etc/security/limits.conf> /dev/null 接下来重新启动器即可。

