在 Debian 系统中,重置(或修改)ulimit 通常指调整 shell 或系统对进程资源使用的限制(如打开文件数、进程数等)。下面按常见场景给你完整说明。
ulimit -a
常用参数:
ulimit -n # 打开文件数
ulimit -u # 最大进程数
ulimit -s # 栈大小
ulimit -n 65535
ulimit -u 4096
⚠️ 注意:
/etc/security/limits.conf编辑文件:
sudo nano /etc/security/limits.conf
在文件末尾添加(示例):
* soft nofile 65535
* hard nofile 65535
* soft nproc 4096
* hard nproc 4096
说明:
*:所有用户(可替换为用户名)soft:软限制(警告)hard:硬限制(不可超过)nofile:打开文件数nproc:进程数✅ 重新登录后生效
/etc/security/limits.d/(推荐)Debian 推荐方式,避免直接改主文件:
sudo nano /etc/security/limits.d/99-custom.conf
内容同上:
* soft nofile 65535
* hard nofile 65535
⚠️ systemd 服务不受 limits.conf 影响
systemctl show <service> | grep Limit
编辑 service 文件:
sudo systemctl edit <service>
添加:
[Service]
LimitNOFILE=65535
LimitNPROC=4096
然后:
sudo systemctl daemon-reload
sudo systemctl restart <service>
cat /proc/sys/fs/file-max
临时修改:
sudo sysctl -w fs.file-max=1000000
永久修改:
sudo nano /etc/sysctl.conf
添加:
fs.file-max = 1000000
生效:
sudo sysctl -p
检查:
grep pam_limits /etc/pam.d/common-session
应有:
session required pam_limits.so
| 场景 | 方法 |
|---|---|
| 临时测试 | ulimit -n 65535 |
| 用户永久 | /etc/security/limits.conf |
| systemd 服务 | systemctl edit |
| 内核级 | sysctl.conf |
如果你能说明 具体用途(如:Docker / MySQL / Nginx / 高并发服务),我可以给你精确配置方案。