上一篇 下一篇 分享链接 返回 返回顶部

调整Linux文件句柄数应对连接爆满

发布人: 发布时间:1小时前 阅读量:2

Linux系统最大文件句柄数调整解决连接爆满

随着业务量的增长,服务器可能出现“连接爆满”现象,大量TCP连接被拒绝或服务响应异常,这往往与Linux系统最大文件句柄数限制有关。合理调整此项参数,是保障高并发场景下服务稳定的关键。

什么是文件句柄数

文件句柄(File Descriptor)是Linux内核用于标识打开文件、网络连接等资源的整数索引。每个进程能同时持有的句柄数量受系统限制。当短连接数过多(如HTTP、数据库连接)时,句柄耗尽会导致新连接建立失败。

为什么连接爆满时需要调整

  • 默认句柄数通常较小(如1024或4096),难以支撑数千并发连接。
  • 即使业务正常,临时峰值也可能触达上限,造成连接拒绝或TIME_WAIT堆积。
  • 高并发场景下,每个连接占用一个句柄,句柄不足直接引发服务不可用。

调整方法

调整分为临时生效和永久生效两种方式:

临时调整

  1. 查看当前限制:ulimit -n 或查看 /etc/security/limits.conf
  2. 修改当前会话:ulimit -n 65535(仅对当前Shell及子进程有效)。

永久调整

  1. 编辑 /etc/security/limits.conf 文件,添加以下内容:
    soft nofile 65535
    hard nofile 65535
  2. 修改系统级限制:编辑 /etc/sysctl.conf,添加 fs.file-max = 100000,执行 sysctl -p 生效。
  3. 重新登录或重启服务使配置生效。

注意事项

  • 调整过大可能导致内存占用升高,需结合服务器硬件评估。
  • 修改后建议监控句柄使用情况(lsof/proc/sys/fs/file-nr)。
  • 对于容器化环境,还需调整容器内的限制(如Docker的 --ulimit 参数)。
  • 配合TCP调优(如缩短TIME_WAIT时间)可进一步优化连接管理。
目录结构
全文
企业微信 企业微信
微信公众号 微信公众号
服务热线: 400-790-1688
电子邮箱: 3310008520@qq.com