Linux下查看并发连接数

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

我解释一下,如果有不对的,请高手指教。
/^tcp/ # 搜索以tcp开头的行
S[$NF] 以$NF为数组下标,建立数组S
++S[$NF] 给数组S赋值,相当于有一个tcp那么这个S数组里的元素就+1
/^tcp/ {++S[$NF]} 整个意思应该是 匹配出一个tcp协议的连接 数组S就+一个元素值
END是前面的/^tcp/ {++S[$NF]} 执行结束后在执行
{for(a in S) print a, S[a]} 将S值代入a 打印a 和这个S[a]数组的值
比如S是10 那么a就是10 S[a] 就是s这个数组的第10个元素的值

返回结果示例:
  LAST_ACK 5
  SYN_RECV 30
  ESTABLISHED 1597
  FIN_WAIT1 51
  FIN_WAIT2 504
  TIME_WAIT 1057
  其中的SYN_RECV表示正在等待处理的请求数;ESTABLISHED表示正常数据传输状态;TIME_WAIT表示处理完毕,等待超时结束的请求数。

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

查看Nginx运行进程数

ps -ef | grep nginx | wc -l返回的数字就是nginx的运行进程数

如果是apache则执行
ps -ef | grep httpd | wc -l3

查看Web服务器进程连接数:

netstat -antp | grep 80 | grep ESTABLISHED -c4

查看MySQL进程连接数:

ps -axef | grep mysqld -c

grep -c 的作用类似grep | wc -l,不同的是,如果是查找多个文件,grep -c会统计每个文件匹配的行数,每行一个文件的列出来,而wc -l 则列出总的统计数字。
另外grep -c 要比 grep | wc -l快一点。

 

posted @ 2018-03-07 14:40  屌丝的IT  阅读(7945)  评论(0编辑  收藏  举报