zoukankan      html  css  js  c++  java
  • net.core.somaxconn net.ipv4.tcp_max_syn_backlog

    Linux参数-net.core.somaxconn与net.ipv4.tcp_max_syn_backlog_梁海江的博客-CSDN博客_net.ipv4.tcp_max_syn_backlog https://blog.csdn.net/oYinHeZhiGuang/article/details/101773221

    1.tcp基础
    对于一个TCP连接,Server与Client需要通过三次握手来建立网络连接.当三次握手成功后,我们可以看到端口的状态由LISTEN转变为ESTABLISHED,接着这条链路上就可以开始传送数据了。

    对于服务器而言,一个完整的连接建立过程,服务器会经历 2 种 TCP 状态:SYN_REVD, ESTABELLISHED。对应也会维护两个队列:
                    1. 一个存放 SYN 的队列(半连接队列)
                    2. 一个存放已经完成连接的队列(全连接队列)
            当一个连接的状态是 SYN RECEIVED 时,它会被放在 SYN 队列中。当它的状态变为 ESTABLISHED 时,它会被转移到另一个队列。所以后端的应用程序只从已完成的连接的队列中获取请求。
            如果一个服务器要处理大量网络连接,且并发性比较高,那么这两个队列长度就非常重要了。因为,即使服务器的硬件配置非常高,服务器端程序性能很好,但是这两个队列非常小,那么经常会出现客户端连接不上的现象,因为这两个队列一旦满了后,很容易丢包,或者连接被复位。所以,如果服务器并发访问量非常高,那么这两个队列的设置就非常重要了。

    2.tcp_max_syn_backlog
         tcp_max_syn_backlog是指定所能接受SYN同步包的最大客户端数量,即半连接上限,默认值是128,即SYN_REVD状态的连接数。

    3.net.core.somaxconn
    somaxconn是Linux中的一个kernel参数,指的是服务端所能accept即处理数据的最大客户端数量,即完成连接上限,默认值是128.

    4.参数设置
    4.1临时改动
    sysctl -w net.core.somaxconn=32768
    以上命令将kernel参数net.core.somaxconn的值改成了32768。这样的改动虽然可以立即生效,但是重启机器后会恢复默认值。

    4.2 永久改动
    4.2.1 修改配置文件/etc/sysctl.conf,在最后增加一行。

    net.core.somaxconn= 4000
    4.2.2 执行如下命令刷新配置文件

    sysctl -p

    net.core.somaxconn的作用 http://www.seaxiang.com/blog/somaxconn

    net.core.somaxconn是Linux中的一个kernel参数,表示socket监听(listen)的backlog上限。backlog是socket的监听队列,当一个请求(request)尚未被处理或建立时,他会进入backlog。而socket server可以一次性处理backlog中的所有请求,处理后的请求不再位于监听队列中。当server处理请求较慢,以至于监听队列被填满后,新来的请求会被拒绝。

    在Hadoop 1.0中,参数ipc.server.listen.queue.size控制了服务端socket的监听队列长度,即backlog长度,默认值是128。而Linux的参数net.core.somaxconn默认值同样为128。当服务端繁忙时,如NameNode或JobTracker,128是远远不够的。这样就需要增大backlog,例如我们的3000台集群就将ipc.server.listen.queue.size设成了32768,为了使得整个参数达到预期效果,同样需要将kernel参数net.core.somaxconn设成一个大于等于32768的值。
  • 相关阅读:
    0920 计算器,公共控件
    0919 认识winform,简单属性
    0914 c#的遍历查询-属性扩展
    0913 完整修改,删除-实体类-数据操作类
    0912 ADO.NET 增删改查
    0911 类库,委托
    0909 多态,抽象类,接口
    0908 封装继承
    0906 面向对象思想,类的介绍
    读《你不知道的JavaScript(上卷)》后感-浅谈JavaScript作用域(一)
  • 原文地址:https://www.cnblogs.com/rsapaper/p/13361546.html
Copyright © 2011-2022 走看看