日期:2014-05-16  浏览次数:20662 次

Linux中有关Apache进程连接数和TCP状态的几个命令

?

?

查看某端口连接数:

netstat -pnt |grep :8106 |wc -l

查看当前连接数:
ps aux | grep httpd | wc -l
pgrep httpd|wc -l

查看httpd占用内存平均数:
ps aux|grep -v grep|awk '/httpd/{sum+=$6;n++};END{print sum/n}'

查看Apache并发连接请求数及其TCP连接状态:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
watch -n 10 "netstat -ant|fgrep ":"|cut -b 77-90|sort |uniq -c"

?

?

?

?

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

TCP状态变迁图
TCP状态变迁图.gif

?

?

?

?

2、查看Nginx并发进程数
ps -ef | grep nginx | wc -l
返回的数字就是nginx的并非进程数,如果是apache则执行
ps -ef | grep httpd | wc -l

还可以用如下命令:
watch -n 1 -d "pgrep nginx|wc -l"

3、查看Web服务器进程连接数:
netstat -antp | grep 80 | grep ESTABLISHED -c

4、查看MySQL进程连接数:
ps -axef | grep mysqld -c