当前位置 主页 > 服务器问题 > Linux/apache问题 >

    linux并发连接50万的配置方法

    栏目:Linux/apache问题 时间:2018-10-14 13:51

    这篇文章主要介绍了linux并发连接50万的配置方法,需要的朋友可以参考下

    - A 64 bits hardware/kernel (AMD64, Opterons)
     - At least 8GB of ram
     - A recent linux kernel (2.6.x)

     About tuning, I prefer to not fully disclose them because servers are targets of many attacks, so it's better not help hackers.

     The most touchy thing is the IP route cache : You have to tune it or else the machine drops many connections

     (hint : rhash_entries=... in the boot append string)
     hints :
     echo 1 > /proc/sys/net/ipv4/route/gc_interval
     echo 150 >/proc/sys/net/ipv4/route/gc_timeout
     echo 2 >/proc/sys/net/ipv4/route/gc_elasticity

     - Use of hugeTLB pages
     hint :
     echo xxx >/proc/sys/vm/nr_hugepages

     Tune tcp :
     echo "4096 49152 131072" >/proc/sys/net/ipv4/tcp_wmem
     echo xxxx >/proc/sys/net/ipv4/tcp_max_syn_backlog
     echo xxxx >/proc/sys/net/core/somaxconn
     echo 1200000 > /proc/sys/net/ipv4/tcp_max_tw_buckets
     echo 7 >/proc/sys/net/ipv4/tcp_retries2
     echo "600000 650000 700000" >/proc/sys/net/ipv4/tcp_mem
     echo 0 >/proc/sys/net/ipv4/tcp_timestamps
     echo 0 >/proc/sys/net/ipv4/tcp_window_scaling
     echo 0 >/proc/sys/net/ipv4/tcp_sack
     echo 330000 >/proc/sys/net/ipv4/tcp_max_orphans
     echo "10000 62000" >/proc/sys/net/ipv4/ip_local_port_range


     others :
     echo 1300000 >/proc/sys/fs/file-max
      
    有多种方法加大Linux的threads数
     1、sysctl -w kernel.threads-max=8167 最大threads数
     2、echo 8167 > /proc/sys/kernel/threads-max

    重启后保存修改值
     编辑/etc/sysctl.conf
    增加
    kernel.threads-max = 8167

     #sysctl -p 马上生效
     
     /proc/sys/net/ipv4/参数说明

    参数名 参数类型
     参数值(如无特别标注,内存类的单位为byte,关于时间的单位为秒)
    官方详细说明(skylove对该参数的个人心得或补充说明)

    ip_forward :BOOLEAN
     0 - 关闭(默认值)
    非0值 - 打开ip转发
     在网络本地接口之间转发数据报。该参数非常特殊,对该参数的修改将导致其它所有相关配置参数恢复其默认值(对于主机参阅RFC1122,对于路由器参见 RFC1812)(在其他一些操作系统中,这个参数不是boolean型,而是INTEGER型,设置为0为不转发,1为根据接口情形决定是否转发,2是 始终转发)

    ip_default_ttl :INTEGER
    默认值为 64
    表示IP数据报的Time To Live值(在网络传递中,每经过一"跳",该值减少1,当ttl为0的时候,丢弃该包.该值越大,即在网络上可以经过的路由器设备的数量越多,但一个错 误的包,也会越发浪费生存周期.根据目前的实际情形而看,设置为32已经足够普通网络访问Internet的需求了)

    ip_no_pmtu_disc :BOOLEAN
    默认值为FALSE(0)
    关闭路径MTU探测(典型的瓶颈原理,一次成功的传输中,mtu是由网络上最"窄"的位置决定的.如果IP层有一个数据报要传,而且数据的长度比链路层的MTU还大,那么IP层就需要进行分片(fragmentation),把数据报分成若干片,这样每一片都小于MTU。