网络基础中怎么使用netstat和ss命令实时分析服务器高并发下的TCP连接状态及队列溢出

舞夢輝影

舞夢輝影

2026-07-25

958人浏览

原创

应分状态统计tcp连接并观察队列水位:established突增需结合qps判断,time_wait持续过高提示短连接未复用,close_wait堆积表明应用未调close(),syn_recv异常可能因syn flood或accept队列满;recv-q/send-q长期>0反映读写阻塞;ss -s可快速获取全局概览。

网络基础中怎么使用netstat和ss命令实时分析服务器高并发下的tcp连接状态及队列溢出

直接用 netstat -anss -tun 看连接列表,只能得到快照,无法判断高并发下真实压力。要实时分析 TCP 连接状态分布和队列是否溢出,关键在于分状态统计 + 队列水位观察,而不是单纯数连接总数。

按状态分类统计活跃连接,识别异常堆积

高并发场景下,不同 TCP 状态反映不同问题:

  • ESTABLISHED 数量突增,说明当前活跃会话多,需结合业务 QPS 判断是否合理
  • TIME_WAIT 持续 >5000 且不回落,大概率是服务端高频短连接+未启用 tcp_tw_reuse
  • CLOSE_WAIT 大量堆积(如上百),代表应用层没调 close(),是代码泄漏信号
  • SYN_RECV 明显高于平时,可能遭遇 SYN Flood,或后端 accept 队列满导致握手失败

推荐命令(无需 root,兼容性好):

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
输出类似:ESTABLISHED 128TIME_WAIT 3942CLOSE_WAIT 67

若系统已弃用 netstat(如 CentOS 8+),改用 ss(注意字段位置不同):

ss -tn state all | awk '{print $1}' | sort | uniq -c
注意:ss 中状态在第 1 列(如 estabtime-wait),不是末尾;也可用 ss -s 快速看全局摘要。

检查接收/发送队列是否堆积,定位阻塞点

TCP 连接的 Recv-QSend-Q 是判断队列是否溢出的核心指标:

  • Recv-Q 长期 >0(尤其 >10KB):说明应用读取慢,数据在内核接收缓冲区积压,可能是业务逻辑卡顿或未设超时
  • Send-Q 长期 >0:说明对端 ACK 回得慢或网络丢包,也可能是本端发得太猛而对方处理不过来
  • 两者同时持续升高,往往意味着连接已“假活”——看似 ESTABLISHED,实则无法收发数据

实时观察命令:

高并发课程源码
高并发课程源码

高并发课程源码

下载

watch -n 1 'ss -tni | grep -E "(estab|time-wait)" | head -10'
-i 可看到 rto、rtt、retrans、qsize 等细节;重点关注 rcv_qsnd_q 字段值。

快速筛查高队列连接:

ss -tn 'sport = :80 or dport = :80' | awk '$2 > 1024 || $3 > 1024 {print $0}'
($2 是 Recv-Q,$3 是 Send-Q,单位字节)

关联进程与监听队列,确认 accept 能力瓶颈

当新连接建立失败(如 Nginx 报 accept() failed (24: Too many open files)),除了连接数,更要查:

  • 监听 socket 的全连接队列(accept queue)是否溢出
    ss -lnt | grep ":80",看 Recv-Q 列 —— 若长期非 0(如 >128),说明应用 accept() 不及时,连接在内核排队等待被取走
  • 半连接队列(SYN queue)是否满
    netstat -s | grep -i "listen overflows",出现递增即表示 SYN 包被丢弃
  • 进程打开文件数限制
    cat /proc/$(pgrep nginx)/limits | grep "Max open files",确认 soft/hard limit 是否足够

用 ss -s 快速获取全局连接概览

ss -s 输出简洁有力,适合定时巡检:

Total: 12345 (kernel 12400)<br>
TCP:   12000 (estab 11500, closed 200, orphaned 50, synrecv 10, timewait 300/0), ports 2000

重点看:

  • estab vs closed 比例:若 closed 极少,说明连接释放慢
  • orphaned:无用户态进程的孤儿连接,通常因进程崩溃未清理 socket
  • timewait 后的 /0:表示当前 TIME_WAIT 中可重用的数量(依赖 tcp_tw_reuse
  • ports:当前已分配的本地端口数,接近 ip_local_port_range 上限时会触发地址冲突

不复杂但容易忽略。

相关专题

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

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

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

1195

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

1824

4

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

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

2023.10.20

322

5

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Webman和FastAPI的性能对比
Webman和FastAPI的性能对比

共0课时 | 231人学习

Workerman官方手册
Workerman官方手册

共0课时 | 0人学习

Swoole手册
Swoole手册

共0课时 | 0人学习