优化Linux ulimit性能需根据系统资源和使用场景调整关键参数,以下是核心设置建议:
| 参数 | 含义 | 推荐设置 | 适用场景 |
|---|---|---|---|
nofile |
单个进程可打开的文件描述符数量 | 65535-200000 | 高并发服务(如Nginx、数据库) |
nproc |
单个用户可创建的最大进程数 | 1024-8192 | 多进程应用(如Java、Python服务) |
memlock |
进程可锁定的内存大小 | unlimited | 需内存锁定的应用(如实时数据处理) |
stack |
进程堆栈大小 | 8192-65536KB | 递归调用密集型程序(如深度学习框架) |
临时设置(仅对当前会话生效)
ulimit -n 65535 # 设置文件描述符为65535
ulimit -u 2048 # 设置最大进程数为2048
永久设置
~/.bashrc或~/.profile,添加:ulimit -n 65535
ulimit -u 2048
执行source ~/.bashrc生效。/etc/security/limits.conf,添加:* soft nofile 65535
* hard nofile 65535
* soft nproc 2048
* hard nproc 2048
/etc/systemd/system.conf:DefaultLimitNOFILE=65535
DefaultLimitNPROC=2048
执行systemctl daemon-reload生效。ulimit -a监控当前使用情况。/etc/sysctl.conf调整,例如:fs.file-max = 1000000
执行sysctl -p生效。nofile和内存限制。设置后通过ulimit -a查看参数是否生效,或重启服务/服务器确保配置被正确加载。
参考来源: