tcp优化

修改/etc/sysctl.conf 文件
1. net.ipv4.ip_local_port_range = 1024 65535

-->可以用于对外连接的端口,这里1024-65535都可以用于外部的连接;但3306是mysql的端口,如果被占用,将导致无法启动mysql,所以还需要设置;

2. net.ipv4.ip_local_reserved_ports = 3306,6000-6100

-->3306和6000-6100的端口被预留下来,不用做对外连接;

3. net.ipv4.tcp_max_syn_backlog = 4096

-->Tcp syn队列的最大长度,在进行系统调用connect时会发生Tcp的三次握手,server内核会为Tcp维护两个队列,Syn队列和Accept队列,Syn队列是指存放完成第一次握手的连接,Accept队列是存放完成整个Tcp三次握手的连接,修改net.ipv4.tcp_max_syn_backlog使之增大可以接受更多的网络连接;

4. net.core.somaxconn = 2048

-->指服务端所能accept即处理数据的最大客户端数量,即完成连接上限;

-->net.core.somaxconn 与net.ipv4.tcp_max_syn_backlog的关系:用以下形象的比喻

某某发布公告要邀请四海之内若干客人到场参加酒席。客人参加酒席分为两个步骤:
1、到大厅;
2、找到座位(吃东西,比如糖果、饭菜、酒等)。
tcp_max_syn_backlog用于指定酒席现场面积允许容纳多少人进来;
somaxconn用于指定有多少个座位。
显然tcp_max_syn_backlog>=somaxconn。
如果要前来的客人数量超过tcp_max_syn_backlog,那么多出来的人虽然会跟主任见面握手,但是要在门外等候;
如果到大厅的客人数量大于somaxconn,那么多出来的客人就会没有位置坐(必须坐下才能吃东西),只能等待有人吃完有空位了才能吃东西。

4. net.ipv4.tcp_fin_timeout = 30

-->修改time_wait状的存在时间

原文地址:https://www.cnblogs.com/alpha1981/p/9056362.html