Linux操作系统常见网络性能优化

请根据服务器性能优化系统内核的网络性能参数,本文提供的建议值是按照32G内存来配置的。

目录/proc/sys中的内核文件与/etc/sysctl.conf中的变量存在对应关系,只不过/proc/sys中的参数值在重启操作系统后会被重置,一般用于临时调整,而/etc/sysctl.conf是一个用于修改正在运行的linux系统内核参数的接口,它包含一些TCP/IP堆栈和虚拟内存系统的高级选项,修改后永久生效。

编辑/proc/sys

/proc/sys/net/ipv4/tcp_fin_timeout
#本端断开的socket连接,TCP保持在FIN-WAIT-2状态的时间。默认值是60,建议为300

/proc/sys/net/ipv4/tcp_mem
#TCP使用的内存页面数,根据内存进行计算,三个值分别代表low、pressure、higt

/proc/sys/net/ipv4/tcp_tw_reuse
#是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP连接。默认值是0,建议为1

/proc/sys/net/ipv4/tcp_tw_recycle
#启用快速TIME-WAIT sockets回收。默认值是1

/proc/sys/net/ipv4/tcp_syn_retries
#对于一个新建连接,内核发送多少次SYN连接请求后放弃。默认值是6,负载大且网络状况好的情况下建议更小

/proc/sys/net/ipv4/tcp_synack_retries
#对于远端的连接请求SYN,内核回复一个SYN+ACK数据包作为确认。默认值是5(相当于180秒)

/proc/sys/net/ipv4/tcp_timestamps
#用于防范伪造的sequence号码。默认值是1

/proc/sys/net/ipv4/tcp_max_syn_backlog
#保存的一直未获得客户端确认的连接请求的队列的最大长度。默认值是2048

/proc/sys/net/ipv4/tcp_max_orphans
#系统所能处理的不属于任何进程的TCP sockets的最大数量。默认值是262144

/proc/sys/net/ipv4/tcp_wmem
#发送缓存设置,三个值分别代表min、default、max。

/proc/sys/net/ipv4/tcp_rmem
#接收缓存设置,三个值分别代表min、default、max。

/proc/sys/net/ipv4/tcp_window_scaling
#设置tcp/ip会话的滑动窗口大小是否可变,低速网络环境中建议关闭。默认值是1

/proc/sys/net/ipv4/tcp_sack
#使用Selective ACK,可以用来查找特定的遗失的数据包,有助于快速恢复状态。默认值是1

/proc/sys/net/ipv4/tcp_keepalive_time
#TCP发送keepalive探测消息的间隔时间(秒),用于确认TCP连接是否有效。默认值是7200

/proc/sys/net/ipv4/tcp_max_tw_buckets
#系统同时处理的最大timewait sockets数目,用于抵御简单的DoS功能。默认值是262144,建议为1048576

/proc/sys/net/core/somaxconn
#用来限制监听队列中最大数据包的数量,超过该值将导致连接超时或触发重传机制。默认值是128,建议为512

/proc/sys/net/core/netdev_max_backlog
#每个网络接口接收数据包的速率快于内核处理速率时,允许送到队列的数据包的最大值。默认值是1000,建议为3000

编辑/etc/sysctl.conf

net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1 
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
net.ipv4.tcp_max_tw_buckets = 256000
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 16384 4194304
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.netdev_max_backlog = 262144
net.core.somaxconn = 262144
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 30
net.ipv4.ip_local_port_range = 1024 65000

保存后,运行以下命令使配置生效:

sysctl -p

原创文章禁止转载:技术学堂 » Linux操作系统常见网络性能优化

精彩评论

6+1=

感谢您的支持与鼓励

支付宝扫一扫打赏

微信扫一扫打赏