zoukankan      html  css  js  c++  java
  • sysctl.conf优化

    sysctl.conf

    Ubuntu server out of box is not optimized to make full use of available hardware. This means “out-of-box” setup might fail under high load.

    So we need to tweak system configuration for maximum concurrancy.

    Sysctl Tweaks

    Open

    vim /etc/sysctl.conf

    Add following towards bottom

    ### IMPROVE SYSTEM MEMORY MANAGEMENT ###
    
    # Increase size of file handles and inode cache
    fs.file-max = 2097152
    
    # Do less swapping
    vm.swappiness = 10
    vm.dirty_ratio = 60
    vm.dirty_background_ratio = 2
    
    ### GENERAL NETWORK SECURITY OPTIONS ###
    
    # Number of times SYNACKs for passive TCP connection.
    net.ipv4.tcp_synack_retries = 2
    
    # Allowed local port range
    net.ipv4.ip_local_port_range = 2000 65535
    
    # Protect Against TCP Time-Wait
    net.ipv4.tcp_rfc1337 = 1
    
    # Decrease the time default value for tcp_fin_timeout connection
    net.ipv4.tcp_fin_timeout = 15
    
    # Decrease the time default value for connections to keep alive
    net.ipv4.tcp_keepalive_time = 300
    net.ipv4.tcp_keepalive_probes = 5
    net.ipv4.tcp_keepalive_intvl = 15
    
    ### TUNING NETWORK PERFORMANCE ###
    
    # Default Socket Receive Buffer
    net.core.rmem_default = 31457280
    
    # Maximum Socket Receive Buffer
    net.core.rmem_max = 12582912
    
    # Default Socket Send Buffer
    net.core.wmem_default = 31457280
    
    # Maximum Socket Send Buffer
    net.core.wmem_max = 12582912
    
    # Increase number of incoming connections
    net.core.somaxconn = 65536
    
    # Increase number of incoming connections backlog
    net.core.netdev_max_backlog = 65536
    
    # Increase the maximum amount of option memory buffers
    net.core.optmem_max = 25165824
    
    # Increase the maximum total buffer-space allocatable
    # This is measured in units of pages (4096 bytes)
    net.ipv4.tcp_mem = 65536 131072 262144
    net.ipv4.udp_mem = 65536 131072 262144
    
    # Increase the read-buffer space allocatable
    net.ipv4.tcp_rmem = 8192 87380 16777216
    net.ipv4.udp_rmem_min = 16384
    
    # Increase the write-buffer-space allocatable
    net.ipv4.tcp_wmem = 8192 65536 16777216
    net.ipv4.udp_wmem_min = 16384
    
    # Increase the tcp-time-wait buckets pool size to prevent simple DOS attacks
    net.ipv4.tcp_max_tw_buckets = 1440000
    net.ipv4.tcp_tw_recycle = 1
    net.ipv4.tcp_tw_reuse = 1

    Load Changes

    Run following command to load changes to sysctl.

    sysctl -p

    Useful Systcl Commands

    This section is added to main post after Ovidiu’s comment.

    Show all system parameters with their values (default or changed)

    sysctl -A

    Show values of parameters modified by you

    sysctl -p

    Show value for a single parameter  parameter-name

    sysctl parameter-name

    Change value for  a single parameter parameter-name without editing sysctl.conf manually.

    sysctl -w parameter-name=parameter-value

    Above command will overwrite any previous modifications to parameter-name. Also, you may need to surround parameter-value with quotes.

    I do not have in-depth explanation for all parameters. Comments will guide you somewhat.

    You can check https://rtcamp.com/tutorials/linux/increase-open-files-limit/ for more details about fs.file-max

    Credits

    We do not have expertise to tweak linux at such level. So following links helped. They differ from most configs as they offered some explanation about parameters which helped us understand what we are picking and why!

    1. http://klaver.it/linux/sysctl.conf
    2. https://github.com/GoTux/Configs/blob/master/99-sysctl.conf
  • 相关阅读:
    大名鼎鼎的红黑树,你get了么?2-3树 绝对平衡 右旋转 左旋转 颜色反转
    django 数据库连接模块解析及简单长连接改造
    django settings最佳配置
    Django 多数据库联用
    初步了解Shuttle ESB
    linux 线程切换效率与进程切换效率相差究竟有多大?
    进行mysql压力測试须要注意的几点
    POJ 2762 Going from u to v or from v to u?(强联通,拓扑排序)
    linux中O(1)调度算法与全然公平(CFS)调度算法
    LeetCode 121 Best Time to Buy and Sell Stock
  • 原文地址:https://www.cnblogs.com/raffeale/p/4596056.html
Copyright © 2011-2022 走看看