查看Apache并发请求数及其TCP连接状态

目录

查看 httpd 进程数

httpd 进程数对应 prefork 模式下 Apache 能处理的并发请求数:

ps -ef | grep httpd | wc -l

示例输出:

1388

表示当前 Apache 能处理 1388 个并发请求。这个值会根据负载情况自动调整。

查看 Apache 并发请求和连接状态

使用 netstatawk 统计所有 TCP 连接的状态分布:

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

示例输出:

LAST_ACK 5
SYN_RECV 30
ESTABLISHED 1597
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057

TCP 连接状态说明

状态说明
CLOSED无连接是活动的或正在进行
LISTEN服务器在等待进入呼叫
SYN_RECV一个连接请求已到达,等待确认
SYN_SENT应用已开始,打开一个连接
ESTABLISHED正常数据传输状态,连接已建立
FIN_WAIT1应用说它已完成
FIN_WAIT2另一边已同意释放
TIMED_WAIT等待所有分组死掉
CLOSING两边同时尝试关闭
TIME_WAIT另一边已初始化一个释放
LAST_ACK等待所有分组死掉

性能分析

从输出结果可以判断 Apache 的连接处理情况:

  • SYN_RECV:正在等待处理的请求数
  • ESTABLISHED:正常数据传输中的连接数(并发处理的请求)
  • TIME_WAIT:处理完毕等待超时结束的连接数

如果 ESTABLISHED 连接数接近 MaxClients 限制,说明服务器处于高负荷状态,可能需要调整 Apache 配置来增加并发处理能力。

#apache #shell-scripting