A-A+

TCP窗口调优

2025年07月09日 21:38 学习笔记 暂无评论 共1896字 (阅读504 views次)

【注意:此文章为博主原创文章!转载需注意,请带原文链接,至少也要是txt格式!】

把sysctl关于网络的参数完整复制到VPS这边,速度提升一倍@!!!

# 设置socket接收缓冲区的最大值(限制内存占用,但尽量推高)
net.core.rmem_max = 25165824

# 设置socket发送缓冲区的最大值(同上)
net.core.wmem_max = 25165824

# 设置TCP listen()队列长度,影响并发建连能力
net.core.somaxconn = 8192

# 设置网络设备接收数据包时的最大排队数,防止丢包
net.core.netdev_max_backlog = 8192

# 设置TCP自动调节读取缓存区的最小/默认/最大值
net.ipv4.tcp_rmem = 4096 87380 25165824

# 设置TCP自动调节写入缓存区的最小/默认/最大值
net.ipv4.tcp_wmem = 4096 65536 25165824

# 设置TCP窗口扩大因子权重(提升带宽利用率)
net.ipv4.tcp_adv_win_scale = 1

# 启用TCP SACK(选择性确认),减少丢包时重传量
net.ipv4.tcp_sack = 1

# 启用TCP时间戳(提升RTT精度和性能)
net.ipv4.tcp_timestamps = 1

# 允许TIME_WAIT状态socket重用(减少端口耗尽)
net.ipv4.tcp_tw_reuse = 1

# 设置TCP连接FIN_WAIT2状态的超时秒数
net.ipv4.tcp_fin_timeout = 50

# 禁止空闲后TCP慢启动,提升恢复速度
net.ipv4.tcp_slow_start_after_idle = 0

# 设置内核默认使用fq队列调度,便于bbr/bbr2效果
net.core.default_qdisc = fq

# 启用bbr2/BBR拥塞控制算法(需要内核支持)
net.ipv4.tcp_congestion_control = bbr2

# 启用ECN(显式拥塞通知),提升网络处理能力
net.ipv4.tcp_ecn = 2

# 设置SYN连接请求队列的最大值(高并发场合建议提升)
net.ipv4.tcp_max_syn_backlog = 8192

# 系统允许存在的最大TIME_WAIT连接数
net.ipv4.tcp_max_tw_buckets = 16000

# 系统允许的最大孤儿连接数,适当放大提升并发能力
net.ipv4.tcp_max_orphans = 10000

# 启用SYN cookies,增强抗SYN Flood能力
net.ipv4.tcp_syncookies = 1

# TCP建立连接时SYN重试次数
net.ipv4.tcp_syn_retries = 5

# TCP应答SYN时重试次数
net.ipv4.tcp_synack_retries = 5

# 开启TCP Fast Open,提高首次连接建立速度,3为全功能
net.ipv4.tcp_fastopen = 3

# 路由缓存回收时间(单位秒)
net.ipv4.route.gc_timeout = 300

# 最大文件句柄数(影响可打开文件/socket数,推到128k)
fs.file-max = 131072

# 单用户允许的inotify实例最大数量
fs.inotify.max_user_instances = 128

# ARP邻居表参数,提升高并发ARP解析能力
net.ipv4.neigh.default.base_reachable_time_ms = 600000

# ARP邻居表参数,多播solicit尝试次数
net.ipv4.neigh.default.mcast_solicit = 20

# ARP重发时间间隔ms
net.ipv4.neigh.default.retrans_time_ms = 250

# 关闭所有接口的反向路径过滤(适合多网卡/多源流量)
net.ipv4.conf.all.rp_filter=0

# 关闭默认配置的反向路径过滤
net.ipv4.conf.default.rp_filter=0

# 关闭eth0接口的反向路径过滤
net.ipv4.conf.eth0.rp_filter=0

# 关闭eth1接口的反向路径过滤
net.ipv4.conf.eth1.rp_filter=0

# 控制内核换入换出swap的积极性,30为适中
vm.swappiness=30

# 降低eth1接口ARP首次探测延迟
net.ipv4.neigh.eth1.delay_first_probe_time = 1

分享一下sysctl的配置,不一定适合你,

有没有效果你自己试试:

使用方法,把上面的配置添加到 /etc/sysctl.conf 文件的最后

然后输入命令:

sysctl -p

布施恩德可便相知重

微信扫一扫打赏

支付宝扫一扫打赏

×

给我留言