在 Linux 服务器调优过程中,经常需要调整内核参数。其中,文件描述符(File Descriptor)的限制尤为关键,默认值往往无法满足高并发业务的需求。
查看当前限制
首先确认一下系统当前的句柄上限。使用 ulimit -a 命令即可查看:
[root@server ~]# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 256324
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
注意看 open files 这一项,默认通常是 1024。如果应用报错 Too many open files,就需要调大这个值。
临时调整
如果是测试环境或者临时需求,可以直接在当前会话中修改:
ulimit -n 65535
不过这种方式重启后失效,仅对当前终端有效。
永久生效
要让配置持久化,需要修改 /etc/security/limits.conf 文件。建议添加如下内容:
* soft nofile 65535
* hard nofile 65535
这里的 * 代表所有用户,也可以指定具体用户名。修改完成后,记得重新登录 SSH 会话才能生效。
验证结果
再次执行 ulimit -n,确认数值已更新为 65535。这样就能支撑更高的并发连接了。

