发布于2026-07-12 阅读(0)
扫一扫,手机访问
说到服务器并发连接数的调整,很多人第一反应是修改内核参数或者调应用配置。但有一个基础环节经常被忽略——ulimit 命令。它控制的是 shell 进程的资源限制,而文件描述符的数量直接决定了你的应用能同时撑起多少个连接。搞不定这块,其他优化做得再花哨也是白搭。

咱们直接上操作步骤,从临时调整到永久生效,一步一步拆清楚。
第一步:打开终端,先看一眼当前的文件描述符限制
执行下面的命令:
ulimit -n
返回的数字就是当前会话允许的最大文件描述符数量。说白了,并发连接数基本就被这个数卡着。如果它很小(比如 1024),而你跑的服务稍微有点流量,马上就会碰到“too many open files”的报错。
第二步:临时调整,临时解决燃眉之急
如果只是想在当前 shell 里把限制放宽,直接用 ulimit 设置新值就行。比如要改成 4096:
ulimit -n 4096
注意,这个改动只在当前终端窗口有效。一旦你关掉终端或者退出登录,一切就回到解放前。所以它适合临时调试,或者短时间跑个测试任务。
第三步:永久调整,一劳永逸的方法
要想每次登录都能自动生效,得去改 /etc/security/limits.conf 这个文件。用编辑器打开它,比如:
sudo nano /etc/security/limits.conf
在文件末尾添加这么两行,把 替换成你想要的数值:
* soft nofile
* hard nofile
这里解释一下规则。* 表示对所有用户生效,你也可以换成具体的用户名。soft 是软限制,用户可以在自己权限范围内临时调大它;hard 是硬限制,用户最大能到多少就是多少,不能再超。通常把软硬限制设成同一个值,免得后面踩坑。
举个例子,把所有用户的文件描述符上限设为 4096,添加:
* soft nofile 4096
* hard nofile 4096
保存退出后,必须重新登录或者重启系统,改动才会生效。光停在当前会话里是没用的。
第四步:验证一下,别白忙一趟
重新登录后,再用一次 ulimit -n 看看:
ulimit -n
如果返回的值是你刚设置的那个数,恭喜,调整成功。如果没变,检查一下 limits.conf 的语法,或者确认你是否属于 pam_limits 模块的生效范围——某些系统默认不加载这个模块,需要额外配置。
最后补充一个常见坑:有些发行版(比如 Ubuntu)默认启用了 systemd 的用户服务,这时 limits.conf 可能被覆盖。如果系统里用了 systemd 管理你的服务进程,还需要去修改对应服务单元的 LimitNOFILE 参数。但这已经是另一回事了,今天咱们先把 ulimit 这块理清楚。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8