网络内核参数优化设置

配置文件

/etc/sysctl.conf

生效

sysctl -p
使配置文件生效

部分参数说明

根据需要自行选取设置

######################## cat /proc/sys/net/core/somaxconn
#默认值:128
#作用:已经成功建立连接的套接字将要进入队列的长度
net.core.somaxconn = 65535

#Centos因内存 可用大小不足,被killed的解决办法
#1:允许,不做限制的超售,当然这个也不是无限大,还受到寻址空间的限制,32位系统最大可能只有4G,64位系统大概16T左右。
vm.overcommit_memory = 1

######################## cat /proc/sys/net/ipv4/ip_local_port_range
#默认值:32768 61000
#作用:可用端口的范围
net.ipv4.ip_local_port_range = 1024 65535

######################## cat /proc/sys/net/core/rmem_max
#默认值:212992
#作用:最大的TCP数据接收窗口大小(字节)
net.core.rmem_max=536870912

######################## cat /proc/sys/net/core/wmem_max
#默认值:212992
#作用:最大的TCP数据发送窗口大小(字节)
net.core.wmem_max= 134217728

######################## cat /proc/sys/net/ipv4/tcp_rmem
#默认值:4096 87380 6291456
#作用:socket接收缓冲区内存使用的下限 警戒值 上限
net.ipv4.tcp_rmem=4096 87380 16777216

######################## cat /proc/sys/net/ipv4/tcp_wmem
#默认值:4096 16384 4194304
#作用:socket发送缓冲区内存使用的下限 警戒值 上限
net.ipv4.tcp_wmem=4096 65536 16777216

######################## cat /proc/sys/net/ipv4/tcp_fin_timeout
#默认值:60
#作用:TCP时间戳
net.ipv4.tcp_fin_timeout = 10

######################## cat /proc/sys/net/ipv4/tcp_tw_reuse
#默认值:0
#作用:针对TIME-WAIT,做为客户端可以启用(例如,作为nginx-proxy前端代理,要访问后端的服务)
net.ipv4.tcp_tw_reuse = 1

######################## cat /proc/sys/net/ipv4/tcp_timestamps
#默认值:1
#作用:TCP时间戳
net.ipv4.tcp_timestamps = 0

#启用 RFC 1323 定义的 window scaling;要支持超过 64KB 的窗口,必须启用该值
net.ipv4.tcp_window_scaling = 0

#####################################
#启用有选择的应答(Selective Acknowledgment),这可以通过有选择地应答乱序接收到的报文来提高性能(这样可以让发送者只发送丢失的报文段);(对于广域网通信来说)这个选项应该启用,但是这会增加对 CPU 的占用。
net.ipv4.tcp_sack = 0

######################## cat /proc/sys/net/core/netdev_max_backlog
#默认值:1000
#作用:网卡设备将请求放入队列的长度
net.core.netdev_max_backlog = 120000

#默认情况下一个tcp连接关闭后,把这个连接曾经有的参数比如慢启动门限snd_sthresh,拥塞窗口snd_cwnd 还有srtt等信息保存到dst_entry中, 只要dst_entry 没有失效,下次新建立相同连接的时候就可以使用保存的参数来初始化这个连接.通常情况下是关闭的。
net.ipv4.tcp_no_metrics_save=1

######################## cat /proc/sys/net/ipv4/tcp_syncookies
#默认值:1
#作用:是否打开SYN Cookie功能,该功能可以防止部分SYN攻击
net.ipv4.tcp_syncookies = 1

######################## cat /proc/sys/net/ipv4/tcp_max_orphans
#默认值:16384
#作用:orphans的最大值
net.ipv4.tcp_max_orphans = 262144

######################## cat /proc/sys/net/ipv4/tcp_max_syn_backlog
#默认值:128
#作用:增大SYN队列的长度,容纳更多连接
net.ipv4.tcp_max_syn_backlog = 262144

###########################
#默认值是5
对于一个新建连接,内核要发送多少个 SYN 连接请求才决定放弃。不应该大于255,默认值是5,对应于180秒左右时间。(对于大负载而物理通信良好的网络而言,这个值偏高,可修改为2.这个值仅仅是针对对外的连接,对进来的连接,是由tcp_retries1 决定的)
net.ipv4.tcp_syn_retries = 2

#########################
#默认值是5
对于远端的连接请求SYN,内核会发送SYN + ACK数据报,以确认收到上一个 SYN连接请求包。这是所谓的三次握手( threeway handshake)机制的第二个步骤。这里决定内核在放弃连接之前所送出的 SYN+ACK 数目。不应该大于255,默认值是5,对应于180秒左右时间。(可以根据上面的tcp_syn_retries来决定这个值)
net.ipv4.tcp_synack_retries = 2
######################################
net.ipv4.udp_mem=262144 327680 393216
##########################

内容参数自网络上,如有不妥请告知。谢谢!

猜你喜欢

转载自blog.csdn.net/zh_1191/article/details/88868765