如何轻松设置Ubuntu ulimit限制核心转储文件大小以避免资源浪费?

更新于
2026-08-11 09:27:13
3阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐
老实说,

为什么需要限制主要转储文件大小?

在Linux服务器上。主要转储文件是程序崩溃时自动生成的内存快照,用于调试和故障分析。但问题来了的观点是,

  • 磁盘爆满风险一个大型应用崩溃可能产生几GB甚至更大的转储文件,瞬间占满你的根分区!
  • 性能下降写入几十GB的转储文件会导致IO阻塞,其他服务响应变慢或直接挂掉
  • 安全隐患转储文件可能包含敏感数据。暴露在磁盘上存在泄密风险
  • 无用占用资源90%的情况下我们压根不会调试这些转储文件,却让它白白占着硬盘空间!

当前设置临时生效?这也太不方便了吧,

ulimit -c 100M

如何轻松设置Ubuntu ulimit限制核心转储文件大小以避免资源浪费?

⚠️ 警告 ⚠️ 这个命令只对当前终端会话有效! 关闭终端后设置就消失了...要永久生效需要深入配置程序参数。下面教你解决掉这个问题,

从第一步先来看,检查当前限制值

ulimit -c

  • 输出为0? 表示主要转储被完全禁用
  • 非零值? 当前允许的最大转储大小 
  • "unlimited"? 天呐,这代表着任何崩溃都可能吃光你的硬盘空间!立刻限制它,

Ubuntu不同版本配置方法全技巧!

A. 对于Systemd程序✅ 最新推荐方式 ✅

  • DefaultLimitCORE=100M

    替换100M为你需要的最大值

    至于支持单位。B/KB/MB/GB/TB/PB/EB/ZB/YB

  • 如何轻松设置Ubuntu ulimit限制核心转储文件大小以避免资源浪费?

  • 🔥 注意事项 🔥 : 如果发现无法生效,请检查systemd是否正常运行并重新加载配置。
  • B. 对于SysVinit传统程序⚠️ 旧版本警告 ⚠️

    1. $ 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 接下来重新启动器即可。

    标签:Ubuntu
    老实说,

    为什么需要限制主要转储文件大小?

    在Linux服务器上。主要转储文件是程序崩溃时自动生成的内存快照,用于调试和故障分析。但问题来了的观点是,

    • 磁盘爆满风险一个大型应用崩溃可能产生几GB甚至更大的转储文件,瞬间占满你的根分区!
    • 性能下降写入几十GB的转储文件会导致IO阻塞,其他服务响应变慢或直接挂掉
    • 安全隐患转储文件可能包含敏感数据。暴露在磁盘上存在泄密风险
    • 无用占用资源90%的情况下我们压根不会调试这些转储文件,却让它白白占着硬盘空间!

    当前设置临时生效?这也太不方便了吧,

    ulimit -c 100M

    如何轻松设置Ubuntu ulimit限制核心转储文件大小以避免资源浪费?

    ⚠️ 警告 ⚠️ 这个命令只对当前终端会话有效! 关闭终端后设置就消失了...要永久生效需要深入配置程序参数。下面教你解决掉这个问题,

    从第一步先来看,检查当前限制值

    ulimit -c

    • 输出为0? 表示主要转储被完全禁用
    • 非零值? 当前允许的最大转储大小 
    • "unlimited"? 天呐,这代表着任何崩溃都可能吃光你的硬盘空间!立刻限制它,

    Ubuntu不同版本配置方法全技巧!

    A. 对于Systemd程序✅ 最新推荐方式 ✅

  • DefaultLimitCORE=100M

    替换100M为你需要的最大值

    至于支持单位。B/KB/MB/GB/TB/PB/EB/ZB/YB

  • 如何轻松设置Ubuntu ulimit限制核心转储文件大小以避免资源浪费?

  • 🔥 注意事项 🔥 : 如果发现无法生效,请检查systemd是否正常运行并重新加载配置。
  • B. 对于SysVinit传统程序⚠️ 旧版本警告 ⚠️

    1. $ 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 接下来重新启动器即可。

    标签:Ubuntu