讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux怎么查看系统的Socket队列长度

梦敏酱_2281

梦敏酱_2281

发布时间:2026-06-19 11:56:00

|

293人浏览过

|

来源于php中文网

原创

ss命令中Recv-Q/Send-Q含义依连接状态而异:LISTEN时,Recv-Q为全连接队列当前长度,Send-Q为其上限;ESTAB时,Recv-Q为接收缓冲区未读字节数,Send-Q为已发未确认字节数。

linux怎么查看系统的socket队列长度

Linux里没有一个叫“系统Socket队列长度”的全局统一值——它分好几层,每层查法不同、含义也完全不同。直接用 ss 看 Recv-Q/Send-Q 是最常用且有效的起点,但得知道它对应哪一层。

怎么用 ss 查单个 socket 的当前队列长度

ss -tlnp 或 ss -tunp 能看到每个监听或已连接 socket 的实时队列水位,关键看 Recv-Q 和 Send-Q 两列:

  • Recv-Q:对 LISTEN 状态 socket,是 accept 队列里已三次握手完成、等待被 accept() 取走的连接数;对 ESTAB 状态,是内核接收缓存里还没被应用 recv() 拿走的字节数
  • Send-Q:对 LISTEN 状态无意义(固定为 0);对 ESTAB 状态,是发送缓冲区里还没被协议栈发出去的字节数(即 sk_wmem_alloc 的近似体现)
  • 如果 Recv-Q 在 LISTEN 行长期 > 0,说明应用调用 accept() 不够快,accept 队列开始积压
  • 如果 Send-Q 在 ESTAB 行持续不为 0 且增长,可能是对端接收慢、网络卡顿,或本端应用写得太猛没控制节奏

怎么查全连接队列(accept queue)的最大长度

这个上限由内核参数 net.core.somaxconn 控制,但实际生效值取 listen(sockfd, backlog) 传入值和该参数的较小者:

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载
  • 查当前系统级上限:cat /proc/sys/net/core/somaxconn
  • 查某个进程 listen 时传的 backlog 值:需看源码或用 strace -e trace=listen -p PID 捕获(生产环境慎用)
  • 临时调大上限:echo 65535 > /proc/sys/net/core/somaxconn,然后记得写入 /etc/sysctl.d/99-socket.conf 并运行 sysctl --system
  • 注意:改完 somaxconn 后,老的监听 socket 不会自动扩容,必须重启服务进程才能让新 listen() 生效

怎么查半连接队列(SYN queue)大小和限制

SYN queue 不暴露给用户态直接查看,但可通过间接指标判断是否溢出:

  • 查当前设置:cat /proc/sys/net/ipv4/tcp_max_syn_backlog(仅当 net.ipv4.tcp_syncookies = 0 时生效)
  • 关键观测点:netstat -s | grep -i "syn" 或 ss -s 输出里的 SYNs to LISTEN sockets dropped 计数——只要这个数在涨,就说明 SYN queue 溢出了
  • 如果服务器暴露在公网且有扫描或攻击,tcp_syncookies = 1 是更稳妥的选择,此时 SYN queue 大小逻辑不同,不再依赖 tcp_max_syn_backlog
  • 虚拟机或容器环境下,有些网络栈实现(如 eBPF-based)可能绕过传统 SYN queue,ss -s 的统计未必完全反映真实丢包路径

为什么不能只看 ifconfig 或 ip link 的 txqueuelen

txqueuelen 是网卡驱动层的发送队列长度,和 socket 层的 Send-Q 完全不是一回事:

  • ip link show eth0 里的 txqlen 控制的是“协议栈交给驱动后、还没进网卡 Ring Buffer 的包最多能缓多少”,单位是包数,不是字节
  • 而 ss 的 Send-Q 是 socket 发送缓冲区剩余字节数,属于传输层,受 SO_SNDBUF、拥塞窗口、对端接收窗口等共同影响
  • 两者之间隔着 TCP 栈、SKB 分配、GSO/GRO、驱动队列、Ring Buffer 多层——某一层堵了,上层队列都会涨,但原因完全不同
  • 常见误操作:看到 Send-Q 高就去调 txqueuelen,结果毫无改善,因为瓶颈其实在软中断处理不过来,或 CPU 被占满

真正难的不是查哪个数字,而是把 ss 的队列水位、/proc/net/snmp 的 TCP 统计、/proc/interrupts 的软中断分布、以及应用日志里的超时和重试串起来看——队列长度只是症状,不是病因。

热门AI工具

更多
PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

4170

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

3533

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2753

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

6750

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

6402

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

3693

2023.07.20

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

3185

2023.07.20

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

3419

2023.07.25

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

0

2026.10.22

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn