【帮助中心】Linux ulimit 文件句柄优化教程,解决网站打开文件数限制报错

2026-10-14 04:50:17丨 发布者:云天域--技术

云服务器部署 Nginx、MySQL 等业务,并发访问量变大时,常会出现too many open files报错。这是 Linux 系统的文件句柄限制,单个进程能打开的文件、网络连接数量存在上限。ulimit 用于修改文件句柄限制,高并发建站场景需要优化此项配置。

一、查看当前文件句柄限制

# 查看当前会话最大打开文件数
ulimit -n

二、临时修改(重启服务器失效)

ulimit -n 65535
临时修改仅对当前登录会话生效,服务器重启后恢复默认值,生产环境需要永久配置。

三、永久修改文件句柄限制

编辑 limits.conf 配置文件

vi /etc/security/limits.conf

在文件末尾添加下面 4 行:

* soft nofile 65535
* hard nofile 65535
root soft nofile 65535
root hard nofile 65535

保存退出。

四、修改系统全局文件最大限制

vi /etc/sysctl.conf

新增或修改这一行

fs.file-max = 655350

加载配置使其生效

sysctl -p

五、验证修改结果

断开当前 ssh 连接,重新登录服务器,再次执行:

ulimit -n

输出 65535,代表配置成功。

六、业务程序单独配置提示

Nginx、MySQL 这类服务,除系统 ulimit 外,程序自身也有连接限制,需要同步修改程序配置文件,否则系统调高后业务仍然会报连接上限。

七、常见问题

  1. 修改后查询数值不变:需要重新登录 SSH 会话,直接在当前终端查看不会更新
  2. 数值不要设置无限制过大,建议 65535 足够大部分建站业务使用
  3. 高并发业务,修改完配置记得重启 Nginx、MySQL 服务,让程序加载新限制

总结

ulimit 文件句柄限制是云服务器建站高并发场景常见优化项,解决too many open files报错。普通低访问量站点保持默认值即可,流量较大的网站需要调高该参数,保障网络连接和文件正常读写。