Debian进程资源限制设置
导读: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
- 使配置生效:注销并重新登录(或重启)。
- 编辑 /etc/security/limits.conf,为指定用户/组或全局设置软硬限制,例如:
- Systemd 服务生效
- 在服务单元 [Service] 段设置,例如:
- LimitNOFILE=65535
- LimitNPROC=4096
- 应用变更:systemctl daemon-reload & & systemctl restart your-service
- 若需对系统全局或用户会话的 systemd 默认限制生效,可在 /etc/systemd/system.conf 与 /etc/systemd/user.conf 中设置如 DefaultLimitNOFILE=… 并重启。
- 在服务单元 [Service] 段设置,例如:
- 用户级 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
- Systemd 服务单元:
- 限制用户会话可用进程数
- limits.conf:
- bob soft nproc 512
- bob hard nproc 1024
- 重新登录后验证:ulimit -u
- limits.conf:
- 禁用核心转储并限制单文件大小
- 在需要的会话或脚本中:
- 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
