Linux下tcp socket通信优化与问题排查
@Date 2018.12.09
一. 优化
1. TPC接收窗口
问题 : 当TCP的接收窗口队列阻塞 -> 发送方继续发 -> 接受方丢掉 -> 发送方重传 -> 网络变糟糕
解决 : 接收方把接收缓存的大小告诉发送方 -> 接收缓存满了 -> 发送方不能发送
# 调大接收窗口缓存大小
net.ipv4.tcp_rmem = "40960 873800 41943040"
net.core.rmem_max = 41943040
net.core.rmem_default = 873800
# 打开win scale
net.ipv4.tcp_window_scaling = 1
2. TCP拥塞窗口
# 优化拥塞窗口的初始大小
3. TIME_WAIT状态的回收
# 调整TIME_WAIT的回收时间
$ vi /etc/sysctl.conf
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
net.core.somaxconn = 2048
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 16777216
net.core.wmem_max = 167