Linux下高并发Socket连接的优化

By | 2023 年 8 月 25 日

1、打开文件优化

#对当前shell

ulimit -n 102400
echo “ulimit -n 102400″ >> ~/.bashrc

#针对所有用户 sudo vim /etc/security/limits.conf

* soft nofile 102400
* hard nofile 102400

#针对系统 cat /proc/sys/fs/file-max echo 1024000 > /proc/sys/fs/file-max

2、修改网络内核对TCP的限制

#修改内核网络参数 sudo vim /etc/sysctl.conf

net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.ip_conntrack_max = 10240

#生效 sudo sysctl -p

3、两个回收

#修改内核网络参数 sudo vim /etc/sysctl.conf

net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1

#生效 sudo sysctl -p

4、内核优化

net.ipv4.tcp_max_syn_backlog内核参数决定了SYN_RECV状态队列的数量,一般默认值为512或者1024,即超过这个数量,系统将不再接受新的TCP连接请求,一定程度上可以防止系统资源耗尽。可根据情况增加该值以接受更多的连接请求。
通常所说的tcp支持的队列数,tcp 连接超过这个队列长度,就不允许连接。

#查看:cat /proc/sys/net/ipv4/tcp_max_syn_backlog

#修改:sudo vim /etc/sysctl.conf

net.ipv4.tcp_max_syn_backlog = 2048

#生效 sudo sysctl -p

发表回复

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据