linux 内核优化

1 /etc/security/limits.conf

  • soft nofile 1024000
  • soft nproc 1024000
  • hard nofile xx
  • hard nproc

root unlimited

--
/etc/sysctl.conf
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl =15
net.ipv4.tcp_retries2 = 5
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_max_orphans = 32768
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_wmem = 8192 131072 16777216
net.ipv4.tcp_rmem = 32768 131072 16777216
net.ipv4.tcp_mem = 786432 2097152 3145728
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.ip_conntrack_max = 65536
net.ipv4.netfilter.ip_conntrack_max=65536
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=180
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384

vm.swappiness=10
fs.file-max = 6815744

/proc/sys/net/ipv4
tcp_syn_retries 2 #syn发送次数
tcp_synack_retries #syn+ack次数
tcp_keepalive_time 600 #已三次握手,但没有数据
tcp_keepalive_probes 3 #次数
tcp_keepalive_intvl 15 #重发间隔
tcp_retries1 3
tcp_retries2 5
tcp_orphan_retries 3
tcp_fin_timeout 2 #本端断开的socket,保持在fin状态的时间
tcp_max_tw_buckets 36000 #系统在同时所处理的最大 timewait sockets 数目。如果超过此数的话﹐time-wait socket 会被立即砍除并且显示警告信息。
tcp_tw_recycle 1 #快速time-wait回收
tcp_tw_reuse 1 #表示是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP
tcp_max_orphans 32768 #系统所能处理不属于任何进程的TCP sockets最大数量。假如超过这个数量﹐那么不属于任何进程的连接会被立即reset,并同时显示警告信息。之所以要设定这个限制﹐纯粹为了抵御那些简单的 DoS 攻击﹐千万不要依赖这个或是人为的降低这个限制。如果内存大更应该增加这个值。
tcp_abort_on_overflow 0
tcp_syncookies 1 #防止syn flood攻击
tcp_stdurg 0
tcp_max_syn_backlog 16384 #对于那些依然还未获得客户端确认的连接请求﹐需要保存在队列中最大数目。对于超过 128Mb 内存的系统﹐默认值是 1024 ﹐低于 128Mb 的则为 128。如果服务器经常出现过载﹐可以尝试增加这个数字。
tcp_window_scaling 1
tcp_timestamps 1
tcp_sack 1
tcp_fack 1
tcp_dsack 1
tcp_ecn 0
tcp_reordering 6
tcp_retrans_collapse 0
tcp_wmem: 8192 131072 16777216 #发送缓存设置min:为TCP socket预留用于发送缓冲的内存最小值。每个tcp socket都可以在建议以后都可以使用它。默认值为4096(4K)
default:为TCP socket预留用于发送缓冲的内存数量,默认情况下该值会影响其它协议使用的net.core.wmem_default 值,一般要低于net.core.wmem_default的值。默认值为16384(16K)。max: 用于TCP socket发送缓冲的内存最大值。该值不会影响net.core.wmem_max,"静态"选择参数SO_SNDBUF则不受该值影响。默认值为131072(128K)。(对于服务器而言,增加这个参数的值对于发送数据很有帮助,在我的网络环境中,修改为了51200 131072 204800)
tcp_rmem 8192 131072 16777216 #接收缓存设置
tcp_app_win 31
tcp_adv_win_scale 2
tcp_low_latency 0
tcp_westwood 0
tcp_bic 0
ip_forward 1/0
ip_local_port_range 1024 65000
ip_conntrack_max 65535


netdev_max_backlog 16384 #每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目,对重负载服务器而言,该值需要调高一点。
somaxconn 16384 #用来限制监听(LISTEN)队列最大数据包的数量,超过这个数量就会导致链接超时或者触发重传机制。

猜你喜欢

转载自blog.csdn.net/weixin_33774883/article/details/87417217