一、查看哪些IP连接本机
netstat -an
二、查看TCP连接数
1)统计80端口连接数
netstat -nat | grep -i "80" | wc -l
2)统计httpd协议连接数
ps -ef | grep httpd | wc -l
3)统计已连接上的,状态为“established
netstat -anp | grep ESTABLISHED | wc -l
4)、查出哪个IP地址连接最多,将其封了
netstat -anp | grep ESTABLISHED | awk {print $5}|awk -F: {print $1} | sort | uniq -c | sort -r +0n
netstat -anp | grep SYN | awk {print $5}|awk -F: {print $1} | sort | uniq -c | sort -r +0n
实例:
1、查看Apache当前并发访问数:
netstat -anp | grep ESTABLISHED | wc -l
对比httpd.conf中MaxClients的数字差距多少。
2、查看有多少个进程数:
ps aux | grep httpd | wc -l
3、可以使用如下参数查看数据
ps -ef | grep httpd | wc -l
1388
统计httpd进程数,连个请求会启动一个进程,使用于Apache服务器。
表示Apache能够处理1388个并发请求,这个值Apache可根据负载情况自动调整。
netstat -ant | grep -i "80" | wc -l
4341
netstat -an会打印系统当前网络链接状态,而grep -i "80"是用来提取与80端口有关的连接的,wc -l进行连接数统计。最终返回的数字就是当前所有80端口的请求总数。
netstat -anp | grep ESTABLISHED | wc -l
376
netstat -an会打印系统当前网络链接状态,而grep ESTABLISHED 提取出已建立连接的信息。 然后wc -l统计。最终返回的数字就是当前所有80端口的已建立连接的总数。
netstat -ant || grep ESTABLISHED | wc -l
可查看所有建立连接的详细记录
查看Apache的并发请求数及其TCP连接状态:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
TIME_WAIT 8947 等待足够的时间以确保远程TCP接收到连接中断请求的确认
FIN_WAIT1 15 等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN_WAIT2 1 从远程TCP等待连接中断请求
ESTABLISHED 55 代表一个打开的连接
SYN_RECV 21 再收到和发送一个连接请求后等待对方对连接请求的确认
CLOSING 2 没有任何连接状态
LAST_ACK 4 等待原来的发向远程TCP的连接中断请求的确认
TCP连接状态详解
LISTEN: 侦听来自远方的TCP端口的连接请求
SYN-SENT: 再发送连接请求后等待匹配的连接请求
SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认
ESTABLISHED: 代表一个打开的连接
FIN-WAIT-1: 等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2: 从远程TCP等待连接中断请求
CLOSE-WAIT: 等待从本地用户发来的连接中断请求
CLOSING: 等待远程TCP对连接中断的确认
LAST-ACK: 等待原来的发向远程TCP的连接中断请求的确认
TIME-WAIT: 等待足够的时间以确保远程TCP接收到连接中断请求的确认
CLOSED: 没有任何连接状态
SYN_RECV表示正在等待处理的请求数;
ESTABLISHED表示正常数据传输状态;
TIME_WAIT表示处理完毕,等待超时结束的请求数。
三、查看句柄数
ulimit -a
修改句柄数
vi /etc/security/limits.conf 添加
* soft nofile 100000
* hard nofile 100000
lsof|awk '{print $2}'|sort|uniq -c|sort -nr|head -n 20
netstat -tan|awk '$1~/tcp/{print $NF}'|sort|uniq -c|sort -nr 查看当前连接状况
lsof -d pid 查看文件描述符
来源:oschina
链接:https://my.oschina.net/u/4262730/blog/4436147