查看 Web 服务器并发请求连接数(netstat 详解)
查看服务器TCP连接状态
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(k in S) print k,S[k]}'
得到的结果一般如下:
ESTABLISHED 1597 正常数据传输状态
TIME_WAIT 1057 等待超时结束的请求数
附一、netstat常见参数
-a
(all)显示所有选项,默认不显示LISTEN相关
-t
(tcp)仅显示tcp相关选项
-u
(udp)仅显示udp相关选项
-n
拒绝显示别名,能显示数字的全部转化成数字。
-l
仅列出有在 Listen (监听) 的服務状态
-p
显示建立相关链接的程序名
-r
显示路由信息,路由表
-e
显示扩展信息,例如uid等
-s
按各个协议进行统计
-c
每隔一个固定时间,执行该netstat命令。
附二、awk常用内置变量
ARGC
命令行参数个数
ARGV
命令行参数排列
ENVIRON
支持队列中系统环境变量的使用
FILENAME
浏览的文件名
FNR
浏览文件的记录数
FS
设置输入域分隔符,等价于命令行 -F选项
NF
浏览记录的域的个数
NR
已读的记录数
OFS
输出域分隔符
ORS
输出记录分隔符
RS
控制记录分隔符
附三、TCP状态转换图
CLOSED
无连接是活动的或正在进行
LISTEN
服务器在等待进入呼叫
SYN_RECV
一个连接请求已经到达,等待确认
SYN_SENT
应用已经开始,打开一个连接
ESTABLISHED
正常数据传输状态
FIN_WAIT1
应用说它已经完成
FIN_WAIT2
另一边已同意释放
ITMED_WAIT
等待所有分组死掉
CLOSING
两边同时尝试关闭
TIME_WAIT
另一边已初始化一个释放
LAST_ACK
等待所有分组死掉