linux如何查看http的并发连接数
- Linux
- 2025-08-04
- 3
netstat -n --tcp | awk '/:端口号/ {++S[$NF]} END {for(a in S) print a, S[a]}' | sort -rn
查看指定端口的HTTP并发连接数及各状态分布
Linux系统中,查看HTTP的并发连接数是运维和性能优化的重要环节,以下是几种常用方法及其详细实现步骤:
使用 netstat
+ grep
+ wc
-
核心命令:
netstat -an | grep ESTABLISHED | wc -l
- 作用:列出所有处于
ESTABLISHED
状态(已建立)的TCP连接,并通过wc -l
统计总行数,即当前并发连接数。 - 原理:
netstat -a
显示所有活动的套接字信息,-n
以数字形式展示地址和端口号;grep ESTABLISHED
过滤出已成功的双向通信连接;wc -l
计算结果数量,此方法简单直接,适合快速获取总量,若返回值为712,则表示当前有712个活跃的HTTP并发连接。
- 作用:列出所有处于
-
进阶用法(按状态分组统计):
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
- 执行效果:输出类似如下表格:
| 状态 | 数量 |
|————–|——|
| CLOSE_WAIT | 3 |
| ESTABLISHED | 87 |
| FIN_WAIT2 | 9 |
| TIME_WAIT | 25 | - 解析逻辑:
awk
脚本逐行匹配以tcp
开头的记录,提取每行的最后一个字段(即连接状态),存入数组S
并累加计数,最终遍历数组输出各状态对应的连接数,其中ESTABLISHED
的值即为有效并发数,该方式能更细致地分析不同阶段的连接分布。
- 执行效果:输出类似如下表格:
使用 ss
命令
-
简洁版:
ss -s
- 输出示例:会直接显示总连接数、监听中的SYN队列长度等汇总数据,输出可能包含类似
total: 1597 established: 1200 ...
的信息,其中established
后的数字即代表已建立的并发连接总数。 - 优势:相比
netstat
,ss
工具性能更高且速度更快,尤其在高负载场景下资源占用更低,适用于实时监控。
- 输出示例:会直接显示总连接数、监听中的SYN队列长度等汇总数据,输出可能包含类似
-
详细模式:
ss --tcp --state ESTABLISHED
- 此命令仅展示处于
ESTABLISHED
状态的TCP连接详情,便于进一步排查具体IP或端口的流量情况,结合管道符可扩展功能,如排序或过滤特定服务。
- 此命令仅展示处于
使用 lsof
-
基础指令:
lsof -i | grep ESTABLISHED | wc -l
- 机制:
lsof -i
列出所有网络相关的打开文件描述符(包括socket),再通过grep
筛选出ESTABLISHED
状态的条目,最后统计数量,由于lsof
提供更丰富的上下文信息(如进程ID、用户权限),适合需要关联应用层行为的深度分析。
- 机制:
-
扩展技巧:若需定位某个特定端口(如80端口)的并发量,可叠加条件:
lsof -i :80 | grep ESTABLISHED | wc -l
。
针对特定服务的精准统计(以Apache为例)
-
查看进程级并发模型:
ps auxfww | grep httpd | wc -l
- 说明:每个HTTP请求通常对应一个独立的进程(取决于配置模式),通过统计
httpd
进程实例的数量间接反映并发量,需注意与配置文件中MaxClients
参数对比,判断是否触达上限。
- 说明:每个HTTP请求通常对应一个独立的进程(取决于配置模式),通过统计
-
结合日志分析:对于复杂场景,建议启用Web服务器的访问日志记录功能,利用工具(如
awk
、goaccess
)解析日志文件中的时间戳和请求路径,重构历史并发曲线。
以下是相关问答FAQs:
-
Q: 为什么不同命令的结果可能存在差异?
A: 主要因工具的数据源不同。netstat
基于BSD实现,而ss
直接读取内核Netlink协议提供的原始数据;某些短连接可能在采样间隔内已完成关闭,导致瞬时值波动,推荐优先使用ss
获取最新数据。 -
Q: 如何判断系统是否过载?
A: 当并发连接数持续接近或超过硬件资源阈值(如文件描述符限制ulimit -n
)、出现大量TIME_WAIT
积压,或响应延迟显著增加时,表明需要优化配置(如调整TCP参数、增加背板队列长度)或扩容基础设施,可通过压力测试工具(如ab
,jmeter
)模拟业务峰值进行验证。
通过上述方法组合使用,可以全面掌握Linux系统的HTTP并发连接状况,为性能调优和故障