zoukankan      html  css  js  c++  java
  • 对Linux下TCP连接相关配置的优化记录(转载)

    1.Linux系统设置优化,vi /etc/sysctl.conf,添加以下内容

    Sysctl.conf代码  收藏代码
    1. fs.file-max = 65535  
    2. kernel.pid_max = 65536  
    3.    
    4. net.ipv4.tcp_syncookies = 1  
    5. net.ipv4.tcp_synack_retries = 2  
    6. net.ipv4.tcp_syn_retries = 2  
    7. net.ipv4.tcp_timestsmps = 0  
    8. net.ipv4.tcp_tw_reuse = 1  
    9. net.ipv4.tcp_tw_recycle = 1  
    10. net.ipv4.tcp_fin_timeout = 30  
    11.   
    12. net.ipv4.tcp_keepalive_time = 1200  
    13. net.ipv4.ip_local_port_range = 10000 65535  
    14. net.ipv4.tcp_max_syn_backlog = 8192  
    15. net.ipv4.tcp_max_tw_buckets = 5000  
    16.   
    17. net.ipv4.tcp_wmem = 8192 436600 873200  
    18. net.ipv4.tcp_rmem  = 32768 436600 873200  
    19. net.ipv4.tcp_mem = 94500000 91500000 92700000  
    20. net.ipv4.tcp_max_orphans = 3276800  
    21.   
    22.   
    23. net.core.netdev_max_backlog = 32768  
    24. net.core.somaxconn = 32768  
    25. net.core.wmem_default = 8388608  
    26. net.core.rmem_default = 8388608  
    27. net.core.rmem_max = 16777216  
    28. net.core.wmem_max = 16777216  

    保存后:
    sysctl -p /etc/sysctl.conf        // 作用:重新载入/etc/sysctl.conf文件

    相关参数说明如下:

    # TCP and memory optimization
    # increase TCP max buffer size setable using setsockopt()
    #it's already auto-tuned very well by Linux based on the amount of RAM.
    #net.ipv4.tcp_mem = 94500000 915000000 927000000
    net.ipv4.tcp_rmem = 4096 87380 8388608
    net.ipv4.tcp_wmem = 4096 87380 8388608
    net.ipv4.tcp_max_orphans = 3276800
    net.ipv4.tcp_timestamps = 1
    net.ipv4.tcp_synack_retries = 2
    net.ipv4.tcp_syn_retries = 2
    #表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。
    net.ipv4.tcp_max_syn_backlog = 65536
    #表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
    net.ipv4.tcp_syncookies = 1
    #表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
    net.ipv4.tcp_tw_reuse = 1
    #表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭;
    net.ipv4.tcp_tw_recycle = 1
    #修改系統默认的 TIMEOUT 时间。
    net.ipv4.tcp_fin_timeout = 30
    #表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。
    net.ipv4.tcp_keepalive_time = 1200
    #表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为10000到65000。(注意:这里不要将最低值设的太低,否则可能会占用掉正常的端口!)
    net.ipv4.ip_local_port_range = 10000 65000
    #表示系统同时保持TIME_WAIT的最大数量,如果超过这个数字,TIME_WAIT将立刻被清除并打印警告信息。默 认为180000,改为6000。对于Apache、Nginx等服务器,上几行的参数可以很好地减少TIME_WAIT套接字数量,但是对于 Squid,效果却不大。此项参数可以控制TIME_WAIT的最大数量,避免Squid服务器被大量的TIME_WAIT拖死。
    net.ipv4.tcp_max_tw_buckets = 6000

    2.修改操作系统的ulimit 限制,vi /etc/security/ ,增加如下两行(具体数值大点小点问题不大):

    Limits.conf代码  收藏代码
    1. *  soft  nofile 65535  
    2. *  hard  nofile 65535  

     

    3.关于ulimit命令参考:http://www.ibm.com/developerworks/cn/linux/l-cn-ulimit/

  • 相关阅读:
    Python 类中的"静态"成员变量
    Python 标准输出 sys.stdout 重定向
    [转] Python的import初探
    百度地图_路线规划,起点终点标记弹窗显示信息
    哈哈哈哈
    centos7.6安装mysql5.6
    redis集群搭建
    初学 Nginx (一) SSI 的作用
    IE 不兼容 console 关键字
    windows 安装多个版本的jdk后修改 环境变量不起作用
  • 原文地址:https://www.cnblogs.com/Marshadows/p/4703745.html
Copyright © 2011-2022 走看看