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

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

Linux负载理解:https://blog.csdn.net/weixin_39845407/article/details/86622671

查看Apache进程

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

ps -aux | grep httpd | wc -l

ps -ef|grep httpd|wc -l

-aux 显示所有包含其他使用者的行程
查找指定进程格式:ps -ef | grep 进程关键字

可以对比httpd.conf中MaxClients的数字差距多少。去掉wc -l 就是查看这个进程名 有多少进程数
MaxClients 最大的进程总数(Apache 2.4版本后MaxRequestWorkers)

统计httpd进程数,连个请求会启动一个进程,使用于Apache服务器。
表示Apache能够处理1388个并发请求,这个值Apache可根据负载情况自动调整。

实时检测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

1、查看apache当前并发访问数:

netstat -an | grep ESTABLISHED | wc -l

有点像宝塔面板中的繁忙进程(BusyWorkers)

查看网络连接

netstat -nat|grep -i "80"|wc -l

netstat -an会打印系统当前网络链接状态,而grep -i “80”是用来提取与80端口有关的连接的,wc -l进行连接数统计。最终返回的数字就是当前所有80端口的请求总数。
如果开了HTTPS 是不是可以查看443(即https的放行端口)

netstat -na|grep ESTABLISHED|wc -l

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

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

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

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

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

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

(合理设置apache httpd的最大连接数)https://blog.csdn.net/elearnings/article/details/50979019

如每个占5M,如系统除去其他应用,剩余2000M,则可以同时又2000/5=400 个进程

重启httpd后,通过反复执行pgrep httpd|wc -l 来观察连接数,可以看到连接数在达到MaxClients的设值后不再增加,但此时访问网站也很流畅,那就不用贪心再设置更高的值了,不然以后如果网站访问突增不小心就会耗光服务器内存,可根据以后访问压力趋势及内存的占用变化再逐渐调整,直到找到一个最优的设置值。

MaxClients  #最大的进程总数(Apache 2.4版本后MaxRequestWorkers)

压力测试

  /www/server/apache/bin/ab -n4000 -c100 http://IP地址/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 状态转换

未经允许不得转载:Song It » 查看Apache并发连接数及其TCP连接状态

相关文章

评论 (0)