查看 Web 服务器并发请求连接数(netstat 详解)
warning:
这篇文章距离上次修改已过284天,其中的内容可能已经有所变动。
查看服务器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
等待所有分组死掉