| 
 成长值: 192
 签到天数: 5050 天 [LV.Master]伴坛终老 | 
 
 发表于 2016/2/17 02:12
|
显示全部楼层
|阅读模式
|  Google Chrome 48.0.2564.103|  Windows 10 
 
| 编辑文件:/etc/sysctl.conf 
 
 kernel.shmmax = 68719476736
 最大共享内存(推荐值:68719476736)
 
 kernel.shmall = 4294967296
 共享内存总大小限制(推荐值:4294967296)
 
 kernel.shmmni = 4096
 共享内存段最大个数(推荐值:4096)
 
 net.ipv4.tcp_syncookies = 1
 启用SynCookies(前端节点服务器建议1,源服务器建议0)
 
 增加net.ipv4.tcp_tw_recycle = 1
 表示开启TCP连接中TIME_WAIT sockets的快速回收,默认为0,表示关闭。实在吃不消不得已才开启,毕竟可能会引起timed_out连接失败的问题甚至tcp长连接突然访问中断导致断流。
 
 net.ipv4.tcp_tw_reuse = 1
 Tcp TIME_WAIT 端口重用(建议是)
 
 net.ipv4.icmp_echo_ignore_all = 1
 忽略所有ping请求包(建议是,在被ICMP DDOS攻击不会产生上行流量,根据自身情况是否)
 
 kernel.threads-max = 50000
 最大线程个数(由于65535端口限制,这里建议取值50000为佳)
 
 fs.file-max = 1000000
 可分配的打开文件句柄最大个数(推荐值:1000000)
 
 net.ipv4.tcp_fin_timeout = 10
 修改系統默认的 TIMEOUT 时间,默认为60,这个参数决定了它保持在FIN_WAIT2状态的时间。
 
 net.ipv4.tcp_keepalive_time = 30
 表示当keepalive启用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为30秒。
 
 net.ipv4.tcp_max_tw_buckets = 5000
 表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息/var/log/messages(TCP: time wait bucket table overflow)。默认为180000,改为5000。
 
 net.ipv4.tcp_max_syn_backlog = 8192
 表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接(SYN_RECV)的网络连接数。使用ss命令查看第四列观察发送队列情况,如果当前已启用syncookie,那么设置max_syn_backlog值无效化
 通过dmesg可以确认是否有该情况发生 dmesg | grep "TCP: drop open request from",可以用命令 netstat -ant|grep SYN_RECV|wc -l 查看具体大小,大多数情况下这个值应该是0或很小,因为半连接状态从第一次握手完成时进入,第三次握手完成后退出,正常的网络环境中这个过程发生很快,如果这个值较大,服务器极有可能受到了SYN Flood攻击。
 另外,上述行为受到内核参数tcp_syncookies的影响,若启用syncookie机制,当半连接队列溢出时,并不会直接丢弃SYN包,而是回复带有syncookie的SYC+ACK包,设计的目的是防范SYN Flood造成正常请求服务不可用。
 
 net.ipv4.ip_local_port_range = 1025 64511
 表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1025到64511。
 
 net.core.rmem_max = 67108864
 net.core.wmem_max = 67108864
 sock缓冲区大小,默认值124928改成67108864
 
 
 
 net.netfilter.nf_conntrack_max = 1048576
 net.netfilter.nf_conntrack_buckets = 262144
 net.netfilter.nf_conntrack_tcp_timeout_established = 3600
 nf_conntrack表最大连接数修改,解决tcp ping丢包问题。nf_conntrack_max决定连接跟踪表的大小,默认值是65535,修改为1048576。
 nf_conntrack_buckets决定存储conntrack条目的哈希表大小,默认值是nf_conntrack_max的1/4。
 nf_conntrack_tcp_timeout_established决定ESTABLISHED状态连接的超时时间,默认值是5天,可以缩短到1小时,即3600,不推荐修改这个设置,会导致游戏服务器出现玩家1小时立即出现掉线情况。
 
 
 修改后,执行sysctl -p 生效
 
 
 最后还有ulimit的设置
 http://bbs.itzmx.com/thread-8598-1-1.html
 
 要是上面看不懂就看这个帖子,列举出几个比较重要的内核优化参数
 https://bbs.itzmx.com/thread-15933-1-1.html
 
 
 | 
 
服务器, linux , 资源 , 流量 , linux , linux , linux , linux , linux , linux , linux , linux , linux , linux , linux |