温馨提示×

debian ulimit配置在哪文件

小樊
37
2026-09-03 20:30:14
栏目: 智能运维

在 Debian 系统中,ulimit(资源限制)并不是由单一固定文件配置的,而是在多个不同位置根据场景来设置。下面按常见情况给你总结:


1. 登录用户限制(PAM + limits.conf)

最常用、最标准的配置位置

文件:

/etc/security/limits.conf

示例:

*               soft    nofile          65535
*               hard    nofile          65535
root            soft    nproc           4096

相关目录(按用户/组细分):

/etc/security/limits.d/*.conf

(Debian 会优先读取 limits.d 下的文件)

前提条件(很重要)

必须启用 PAM 限制:

/etc/pam.d/common-session
/etc/pam.d/common-session-noninteractive

应包含:

session required pam_limits.so

⚠️ 只对登录会话生效(ssh、su、tty),对 systemd 服务不一定生效。


2. Systemd 服务限制(Debian 8+ 主流方式)

如果你的程序是以 systemd 服务运行的,limits.conf 可能不会生效

服务级配置

编辑 service 文件:

/etc/systemd/system/xxx.service

[Service] 段:

[Service]
LimitNOFILE=65535
LimitNPROC=4096

然后:

systemctl daemon-reload
systemctl restart xxx

全局 systemd 限制

/etc/systemd/system.conf
/etc/systemd/user.conf

示例:

DefaultLimitNOFILE=65535

3. 当前 shell 临时设置

ulimit -n 65535

只对当前 shell 及其子进程生效,重启失效。


4. 内核级 / 系统级参数(不是 ulimit,但相关)

/etc/sysctl.conf

例如:

fs.file-max = 1000000

生效:

sysctl -p

总结对照表

场景 配置文件
登录用户 /etc/security/limits.conf
细分配置 /etc/security/limits.d/*.conf
systemd 服务 *.servicesystem.conf
临时 ulimit 命令
内核最大文件数 /etc/sysctl.conf

如果你能说明 具体场景(如:SSH 登录用户 / Nginx / Docker / MySQL),我可以直接给你最准确的一份配置示例。

0