###优化内核参数###
if [ ! -f '/etc/sysctl.conf.bak' ];then
\cp /etc/sysctl.conf{,.bak}
cat > /etc/sysctl.conf <<EOF
$(date)
#修改最大连接数
net.nf_conntrack_max = 655360
net.netfilter.nf_conntrack_tcp_timeout_established = 1200
#套接字由本端关闭,这个参数决了它在FIN-WAIT-2状态的时间,默认是60秒。
net.ipv4.tcp_fin_timeout = 2
#socket废弃前重试的次数,重负载web服务器建议调小
net.ipv4.tcp_orphan_retries = 1
#表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接。
net.ipv4.tcp_tw_reuse = 1
#表示开启TCP连接中TIME-WAIT sockets的快速回收。
net.ipv4.tcp_tw_recycle = 1
#表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN***。
net.ipv4.tcp_syncookies = 1
#表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为10分钟。
net.ipv4.tcp_keepalive_time = 600
#表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。
net.ipv4.ip_local_port_range = 1024 65000
#加大SYN队列长度,默认是1024.可以容纳更多等待连接的网络连接数。
net.ipv4.tcp_max_syn_backlog = 262144
#imewait的数量,默认是180000。
net.ipv4.tcp_max_tw_buckets = 6000
#路由缓存刷新频率,当一个路由失败后多长时间跳到另一个路由,默认是300。
net.ipv4.route.gc_timeout = 100
#内核放弃连接之前发送SYN+ACK的时间
net.ipv4.tcp_syn_retries = 1
#内核放弃建立连接之前发送SYN包的数量。
net.ipv4.tcp_synack_retries = 1
#调解系统同时发起的TCP连接数,默认为128.在高并发的请求中,默认值可能导致连接超时或重传。
net.core.somaxconn = 262144
#该参数决定了,网络设备接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。
net.core.netdev_max_backlog = 262144
#设定系统中最多有多少个TCP套接字不被关联到任何一个用户文件句柄上。可防止简单DoS***。
net.ipv4.tcp_max_orphans = 262144
EOF
fi
#刷新系统内核参数:
/sbin/sysctl -p