首页主机资讯Debian进程资源限制设置

Debian进程资源限制设置

时间2026-01-18 16:07:04发布访客分类主机资讯浏览504
导读:Debian进程资源限制设置 一 基础概念与查看方式 使用 ulimit 控制进程对系统资源的使用,分为软限制(soft,用户可自调但不超过硬限制)与硬限制(hard,管理员设定上限)。常用查看与设置示例: 查看全部限制:ulimit...

Debian进程资源限制设置

一 基础概念与查看方式

  • 使用 ulimit 控制进程对系统资源的使用,分为软限制(soft,用户可自调但不超过硬限制)与硬限制(hard,管理员设定上限)。常用查看与设置示例:
    • 查看全部限制:ulimit -a
    • 打开文件描述符:ulimit -n 4096
    • 用户进程数:ulimit -u 1024
    • 虚拟内存:ulimit -v 536870912(单位KB,示例为512MB
    • 核心转储:ulimit -c 0(禁用core dump)
    • 栈大小:ulimit -s 8192(单位KB,示例为8MB
    • 单文件最大大小:ulimit -f 104857600(单位KB,示例为100MB
    • CPU时间:ulimit -t 3600(单位秒)
  • 以上命令既可用于临时调整,也可在脚本中按需设置。

二 持久化设置方法

  • 用户登录会话生效(PAM + limits.conf)
    • 编辑 /etc/security/limits.conf,为指定用户/组或全局设置软硬限制,例如:
      • 全局文件描述符:“* soft nofile 4096”“* hard nofile 8192”
      • 指定用户进程数:“alice soft nproc 1024”“alice hard nproc 2048”
    • 确保 PAM 启用 limits 模块:在 /etc/pam.d/common-session/etc/pam.d/common-session-noninteractive 末尾添加:
      • session required pam_limits.so
    • 使配置生效:注销并重新登录(或重启)。
  • Systemd 服务生效
    • 在服务单元 [Service] 段设置,例如:
      • LimitNOFILE=65535
      • LimitNPROC=4096
    • 应用变更:systemctl daemon-reload & & systemctl restart your-service
    • 若需对系统全局或用户会话的 systemd 默认限制生效,可在 /etc/systemd/system.conf/etc/systemd/user.conf 中设置如 DefaultLimitNOFILE=… 并重启。
  • 用户级 Shell 配置(仅对交互式登录生效)
    • ~/.bashrc~/.profile 中加入如 ulimit -n 4096,随后 source ~/.bashrc 或重新登录。

三 系统级内核参数配合

  • 某些场景需配合内核参数以避免资源争用或达到上限:
    • 文件描述符总量:fs.file-max = 65535
    • 内存过量使用策略:vm.overcommit_memory = 2
    • 虚拟内存区域数:vm.max_map_count = 262144
  • 应用变更:sysctl -p。以上参数与 ulimit 互补,分别作用于系统全局与进程级限制。

四 常见场景示例

  • 提高服务可用文件描述符(以 Nginx 为例)
    • Systemd 服务单元:
      • [Service]
      • LimitNOFILE=65535
    • 执行:systemctl daemon-reload & & systemctl restart nginx
  • 限制用户会话可用进程数
    • limits.conf:
      • bob soft nproc 512
      • bob hard nproc 1024
    • 重新登录后验证:ulimit -u
  • 禁用核心转储并限制单文件大小
    • 在需要的会话或脚本中:
      • ulimit -c 0
      • ulimit -f 1073741824(示例为1GB

五 验证与排错

  • 验证命令
    • 当前会话限制:ulimit -a
    • 服务实际生效值:在服务的 systemd 单元中执行 systemctl show your-service | grep Limit(如 LimitNOFILE
    • 系统级上限:cat /proc/sys/fs/file-max
  • 常见问题
    • 修改 limits.conf 不生效:确认 /etc/pam.d/common-session* 已包含 pam_limits.so,并重新登录;使用 su 或 sudo 切换用户时,确保创建的是登录会话
    • Systemd 服务不继承登录级 limits:在服务单元中显式设置 LimitNOFILE/LimitNPROC 等,并执行 daemon-reload 与重启服务。
    • 数值单位易混:-v-f 的单位为KB;设置如 512MB 需写作 536870912

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Debian进程资源限制设置
本文地址: https://pptw.com/jishu/784477.html
Debian进程启动脚本编写技巧 如何在Debian上设置SQL Server的用户权限

游客 回复需填写必要信息