Centos下TCP最大连接数受限问题

一、 打开文件数限制修改


1、用户级别
查看Linux系统用户最大打开文件限制:

ulimit -n

输出:
1024

(1)修改limits.conf

vi /etc/security/limits.conf

添加或修改:

* soft nofile 1000000
* hard nofile 1000000



2、Linux系统级别
查看Linux系统对同时打开文件数的硬限制:

sysctl -a|grep file-max
fs.file-max = 65535

修改sysctl.conf

vi /etc/sysctl.conf

输出:
fs.file-max = 1000000


*使sysctl配置立即生效:

sysctl -p

二、 网络端口限制修改


1、查看Linux系统最大追踪TCP连接数量:

sysctl -a | grep ipv4.ip_conntrack_max

输出:
net.ipv4.nf_conntrack_max = 20000
这表明系统将对最大跟踪的TCP连接数限制默认为20000。

2、查看Linux系统端口范围:

sysctl -a | grep ipv4.ip_local_port_range

输出:
net.ipv4.ip_local_port_range = 1024 30000


注意:
每个TCP客户端连接都要占用一个唯一的本地端口号(此端口号在系统的本地端口号范围限制中),如果现有的TCP客户端连接已将所有的本地端口号占满。将不能创建新的TCP连接。

(1)修改sysctl.conf

vi /etc/sysctl.conf
net.ipv4.ip_local_port_range = 1024 65535
net.netfilter.nf_conntrack_max = 1000000

*使sysctl配置立即生效:

sysctl -p


如果按上述端口范围进行设置,则理论上单独一个进程最多可以同时建立60000多个TCP客户端连接。
如果按上述参数进行设置,则理论上单独一个进程最多可以同时建立60000多个TCP客户端连接。

Linux下查看tcp连接数及状态命令:

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

三、查看TCP连接数

1、统计80端口连接数
netstat -nat|grep -i "80"|wc -l

2、统计httpd协议连接数
ps -ef|grep httpd|wc -l

3、统计已连接上的,状态为“established
netstat -na|grep ESTABLISHED|wc -l

4、查出哪个IP地址连接最多,将其封了.
netstat -na|grep ESTABLISHED|awk {print $5}|awk -F: {print $1}|sort|uniq -c|sort -r +0n

netstat -na|grep SYN|awk {print $5}|awk -F: {print $1}|sort|uniq -c|sort -r +0n

你可能感兴趣的:(centos,linux,centos)