查看Apache并发连接数及其TCP连接状态

时间:2019 年 3 月 15 日 | 作者: | 分类:Linux | 浏览:87 ℃ | 发表评论
本文目录
[隐藏]

原文:https://koda.iteye.com/blog/1130495

查看Apache进程

查看httpd进程数(即prefork模式下 Apache能够处理的并发请求数)

ps -aux | grep httpd | wc -l

可以对比httpd.conf中MaxClients的数字差距多少。去掉wc -l 就是查看这个进程名 有多少进程数

实时检测HTTPD连接数:
watch -n 1 -d "pgrep httpd|wc -l"

HTTPD连接数 在宝塔面板:上面的值为   空闲进程(IdleWorkers)+繁忙进程(BusyWorkers)

查看apache进程数(命令优化:grep -v 是反向查找的意思,比如 grep -v grep 就是查找不含有 grep 字段的行)

ps aux|grep httpd |grep -v grep
ps aux|grep httpd |grep -v grep |wc -l

ps aux|grep php-fpm |grep -v grep
ps aux|grep php-fpm |grep -v grep |wc -l

prefork 下StartServers、MinSpareServers、MaxSpareServers等选项的关系:https://blog.csdn.net/u013831156/article/details/58073436?utm_source=blogxgwz7

查看网络连接

netstat -nat|grep -i "80"|wc -l
netstat -an会打印系统当前网络链接状态,而grep -i “80”是用来提取与80端口有关的连接的,wc -l进行连接数统计。最终返回的数字就是当前所有80端口的请求总数。

netstat -na|grep ESTABLISHED|wc -l

watch -n 1 -d "netstat -an | grep ESTABLISHED | wc -l" #实时监控信息

netstat -an会打印系统当前网络链接状态,而grep ESTABLISHED 提取出已建立连接的信息。 然后wc -l统计。最终返回的数字就是当前所有80端口的已建立连接的总数。

netstat -nat||grep ESTABLISHED|wc -l  可查看所有建立连接的详细记录

怎么才能知道是哪个连接造成的CPU占用不断增加?

连接数只是一个方面,还有一方面是不是你的php程序处理时占用过多的资源,你看一下日志,在负荷比较大的时候主要访问那几个文件,然后分析那几个程序

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

https://blog.csdn.net/elearnings/article/details/50979019

压力测试

  /www/server/apache/bin/ab -n4000 -c100 http://115.29.228.154/index.html

查看TCP连接状态:

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

LAST_ACK 1
SYN_RECV 6
CLOSE_WAIT 3
ESTABLISHED 53
FIN_WAIT1 1
FIN_WAIT2 57
TIME_WAIT 23

状态:描述
LISTEN:侦听来自远方的TCP端口的连接请求
SYN-SENT:再发送连接请求后等待匹配的连接请求(如果有大量这样的状态包,检查是否中招了)
SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认(如有大量此状态,估计被flood攻击了)
ESTABLISHED:代表一个打开的连接
FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2:从远程TCP等待连接中断请求
CLOSE-WAIT:等待从本地用户发来的连接中断请求
CLOSING:等待远程TCP对连接中断的确认
LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认(不是什么好东西,此项出现,检查是否被攻击)
TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认
CLOSED:没有任何连接状态

TCP 状态转换

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注