Linux 网络调优

6 篇文章 0 订阅

 

Linux 内核目录/proc/sys/net 提供了很多网络协议栈配置参数,可控制网络协议栈行为,达到调优目的。 

 

一. 基础命令

sysctl -a # 显示内核参数

# 修改内核参数
sysctl -w net.core.somaxconn=32768
echo 32768 > /proc/sys/net/core/somaxconn

# 永久生效
vi /etc/sysctl.conf 

二. TCP/IP网络参数

选择性确认

/proc/sys/net/ipv4/tcp_sack 默认为1

Selective Acknowledgement, 只重传丢失的tcp片断,不用发送所有未被确认的tcp报文段。

注:tcp options 选项kind=4 报文。

 

窗口扩大因子

net.ipv4.tcp_window_scaling = 1 默认启用

提高TCP通信吞吐量,N*2^M = WinSize*64, 窗口因子默认为6. 

注:tcp options 选项kind=3 报文。

 

RTT

/proc/sys/net/ipv4/tcp_timestamps 启用或关闭时间戳选项,默认为1

注:tcp option选项kind=8报文,用于计算通信双方回路时间(Round Trip Time)。

 

超时重连

/proc/sys/net/ipv4/tcp_syn_retries 重连次数,默认为5。

 

超时重传

/proc/sys/net/ipv4/tcp_retries1 底层IP接管前TCP最少执行的重传次数,默认3

/proc/sys/net/ipv4/tcp_retries2 最多执行的重传次数,默认15

最小重传时间是TCP_RTO_MIN = 200ms
最大重传时间是TCP_RTO_MAX = 120s

 

TIME_WAIT

a.用于可靠性终止TCP连接;

b.保证以来的TCP报文有足够时间被识别并丢弃。默认2MSL,默认2分钟。

/proc/sys/net/ipv4/tcp_fin_timeout  # FIN_WAIT2到TIME_WAIT超时时间
/proc/sys/net/ipv4/tcp_tw_recycle   # 快速回收TIME_WAIT连接,默认为0,小心NAT
/proc/sys/net/ipv4/tcp_tw_reuse     # 重用TIME_WAIT端口。默认0,启用1,需与timestamp配合
/proc/sys/net/ipv4/tcp_timestamp    # 开启时间戳

可指定SO_REUSEADDR 强制进程使用处于TIME_WAIT状态的连接占用的端口。

 

TCP读写缓冲区

/proc/sys/net/ipv4/tcp_rmem 最小值 默认值 最大值

/proc/sys/net/ipv4/tcp_wmem

 

拥塞控制

/proc/sys/net/ipv4/tcp_congestion_control 指定当前使用的拥塞算法,默认为cubic

具体有reno, vegas, cubic 算法等,kernel4.9以上版本支持bbr。

 

TCP同步标签

/proc/sys/net/ipv4/tcp_syncookies 抵御同地址syn攻击,对于随机ip地址syn攻击无能为力。

 

连接参数

/proc/sys/netc/ipv4/tcp_max_syn_backlog syn队列(处于SYN_RCVD连接)大小,默认128,可调大

/proc/sys/net/core/somaxconn 端口最大监听队列(完成三次握手)长度,默认128;该参数过小会限制最大并发数;listen(fd, backlog)

 

三. 基础概念

1. 交互数据

实时性较高场合,nagle算法攒够数据后发送,减少网络上微小tcp报文段数量。

2. 成块数据

ftp大文件下载场合,接收端一次性ACK多条报文。

3. 拥塞控制

慢启动 cwnd=(N, SMSS)

拥塞避免 cwnd=smss*smss/cwnd  避免cwnd线性增长

快速重传 cwnd=ssthresh+3*SMSS 收到3条重复ACK报文后,即认为有数据包丢失,则源端重传丢失的数据包,而不必等待

RTO超时。

快速恢复 cwnd=cwnd+smss 每次收到1重复ACK时,增大cwnd

 

 

参数资料:

Linux内核调优 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值