netstat命令和awk来查看web服务器的并发连接数以及TCP连接状态。
代码如下 | 复制代码 |
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 或者: netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"t",state[key]}' |
FIN_WAIT2 38
CLOSING 3
SYN_RECV 1
CLOSE_WAIT 1
TIME_WAIT 261
ESTABLISHED 71
LAST_ACK 2
FIN_WAIT1 9
TCP连接的各个状态含义描述如下
CLOSED 无连接是活动的或正在进行
LISTEN 服务器在等待进入呼叫
SYN_RECV 一个连接请求已经到达,等待确认
SYN_SENT 应用已经开始,打开一个连接
ESTABLISHED 正常数据传输状态/当前并发连接数
FIN_WAIT1 应用说它已经完成
FIN_WAIT2 另一边已同意释放
ITMED_WAIT 等待所有分组死掉
CLOSING 两边同时尝试关闭
TIME_WAIT 另一边已初始化一个释放
LAST_ACK 等待所有分组死掉
ESTABLISHED参数后面的值就是当前系统的并发连接数了。
查看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 netstat -antp | grep 80 | grep ESTABLISHED -c ps -axef | grep mysqld -c |
补充
查看当前Apache连接数:
代码如下 | 复制代码 |
ps -ef |grep httpd|wc -l 或ps -aux |grep httpd |wc -l 查看当前Apache并发连接数和TCP连接状态: netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 查看连接数和连接状态: netstat -ant|grep $ip:80|wc -l 查看tomcat当前连接状态: netstat -anlt|grep 8009|grep ESTABLISHED 查看mysql当前连接数: mysqladmin -umysql -pmysql static |