Linux 中怎么通过进程句柄数排查连接数爆满问题

冷炫風刃

冷炫風刃

2026-08-05

669人浏览

原创

进程句柄数异常升高需先确认是否真爆满,再锁定高占用进程及句柄类型;最准方法是查/proc/sys/fs/file-nr第二列、ls -l /proc/pid/fd统计真实数、cat /proc/pid/limits核限制,并用lsof -p分析类型,重点关注close_wait等泄漏信号。

linux 中怎么通过进程句柄数排查连接数爆满问题

进程句柄数异常升高,往往是连接数爆满的直接体现——但不是所有高句柄都等于连接泄漏,关键要区分“真连接堆积”和“正常高并发占用”。排查核心是:先确认是否真爆满,再锁定谁在开、开的是什么、为何不关。

看准系统和进程的真实使用量

别只信 lsof | wc -lps aux --sort=-fd,它们容易漏统计或权限报错干扰。最稳的做法:

  • 查系统级活跃句柄总数:cat /proc/sys/fs/file-nr,盯第二列(已分配且正在使用的 fd 数),接近第三列(fs.file-max)的 80% 就该预警
  • 查某进程当前真实句柄数:ls -l /proc/<pid>/fd/ 2>/dev/null | wc -l</pid>,比 lsof -p 更准、无权限中断风险
  • 查该进程软硬限制:cat /proc/<pid>/limits | grep "Max open files"</pid>,确认是不是卡在限制上而非真泄漏

定位高句柄进程并分析连接类型

先找出“大户”,再判断它开的到底是有效连接还是残留垃圾:

宝塔Linux面板11.8.1
宝塔Linux面板11.8.1

宝塔Linux面板11.8.1为官网当前正式版,新增AI建站能力并经过宝塔网站工程师深度调教,开放自定义AI功能API,同时对WAF进行界面重构和深度优化,提升拦截能力与运维效率。

下载
  • 全局排序查进程:ls /proc/[0-9]*/fd/ 2>/dev/null | cut -d'/' -f3 | sort | uniq -c | sort -nr | head -10
  • 对可疑 PID,细分句柄类型:lsof -p <pid> | awk '{print $5}' | sort | uniq -c | sort -nr</pid>,重点关注:IPv4/IPv6 socket、TCP CLOSE_WAIT、eventpoll、pipe、anon_inode
  • 特别注意 CLOSE_WAIT 连接大量存在——说明对方已断连,本端没调 close(),是典型连接泄漏信号

结合业务场景判断是配置问题还是代码泄漏

句柄多≠有问题,得看开得有没有道理:

  • Web 服务(Nginx/Tomcat):高并发下几千 ESTABLISHED 是正常的;但如果 TIME_WAITCLOSE_WAIT 持续增长,检查 keepalive timeout、客户端异常断连、后端响应慢拖住连接
  • Java 应用:用 jstack <pid></pid> 看线程堆栈,找阻塞在 SocketInputStream.read 或大量 java.net.Socket 实例;检查数据库/HTTP 客户端连接池是否设了 maxIdleminEvictableIdleTimeMillis
  • Node.js/Python:查 net.createConnectionsocket.socket() 是否配了 .destroy() / .close();Python 中 open() 是否漏了 with 或显式 .close()

临时止血与长期防控

一边压住症状,一边堵住源头:

  • 临时提限只救急:ulimit -n 65536 启动进程,或改 systemd service 文件加 LimitNOFILE=65536(别只改 limits.conf,systemd 不认)
  • 监控必须落地:用 Prometheus + node_exporter 抓 process_open_fds{pid="xxx"},设告警(比如 > 软限制 × 0.75)
  • 定期验证资源释放:对关键服务加 strace -p <pid> -e trace=open,openat,close,socket,connect</pid>,观察开/关是否成对出现

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

355

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

617

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

1215

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

428

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

324

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

190

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

1031

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

1846

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

322

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpMyAdmin 安装文档
phpMyAdmin 安装文档

共0课时 | 0人学习

Apifox下载与安装手册
Apifox下载与安装手册

共0课时 | 0人学习

安装 Xdebug 并配置 phpstorm
安装 Xdebug 并配置 phpstorm

共1课时 | 125人学习