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状的存在时间
posted on 2018-05-18 15:19 yyyyuuuu386 阅读(121) 评论(0) 编辑 收藏 举报