建议先按顺序阅读以下文章:
本文的参数主要是针对XanMod内核进行优化,原理我尽量说明清楚,在主线内核上可以进行参考(有一定的参考意义)。
参数配置
# BBR及网络性能优化配置
# 适用于: Debian 11, Kernel 6.12.32
# CPU: Intel Xeon E5-2680 v4 * 2
# RAM: 32GB
# 启用BBR3拥塞控制算法
net.ipv4.tcp_congestion_control = bbr # 升级为BBR3,提供更好的拥塞控制
net.core.default_qdisc = fq_codel # 使用fq_codel替代fq,更好地处理缓冲区膨胀
# 网络协议栈优化
## 增加默认的TCP读写缓冲区大小
net.core.rmem_default = 1048576 # 保持1MB默认接收缓冲区
net.core.wmem_default = 1048576 # 保持1MB默认发送缓冲区
## 增加TCP读写缓冲区的最大大小
net.core.rmem_max = 33554432 # 增加到32MB,提升高带宽场景性能
net.core.wmem_max = 33554432 # 增加到32MB,提升高带宽场景性能
## TCP自动调优设置(最小,默认,最大)
net.ipv4.tcp_rmem = 4096 1048576 16777216
net.ipv4.tcp_wmem = 4096 1048576 16777216
# 网络性能优化
## 增加网络设备的数据包队列长度
net.core.netdev_max_backlog = 32768
net.core.netdev_budget = 600 # 添加NAPI轮询预算
net.core.netdev_budget_usecs = 8000 # 添加NAPI轮询时间预算
## 增加监听队列的最大长度
net.core.somaxconn = 65535
## 增加TCP最大syn队列长度
net.ipv4.tcp_max_syn_backlog = 32768
# TCP连接优化
## 启用TCP Fast Open
net.ipv4.tcp_fastopen = 3 # 同时启用客户端和服务器端
## 启用TCP时间戳
net.ipv4.tcp_timestamps = 1
## 启用TCP SACK
net.ipv4.tcp_sack = 1
net.ipv4.tcp_dsack = 1 # 添加重复SACK支持
## 启用TCP窗口扩展
net.ipv4.tcp_window_scaling = 1
## 优化TCP延迟
net.ipv4.tcp_low_latency = 1 # 添加低延迟模式
net.ipv4.tcp_notsent_lowat = 16384 # 添加发送缓冲区低水位标记
net.ipv4.tcp_mtu_probing = 1 # 启用MTU探测
# TCP连接复用
## 启用TIME-WAIT套接字重用
net.ipv4.tcp_tw_reuse = 1
## 设置TIME-WAIT套接字的最大数量
net.ipv4.tcp_max_tw_buckets = 65535
## TCP连接保活设置
net.ipv4.tcp_keepalive_time = 600 # 添加TCP保活时间
net.ipv4.tcp_keepalive_intvl = 30 # 添加TCP保活间隔
net.ipv4.tcp_keepalive_probes = 5 # 添加TCP保活探测次数
# TCP内存优化
## TCP内存自动调优(最小,压力,最大,单位:页)
net.ipv4.tcp_mem = 786432 1048576 26777216 # 增加最大值以支持更多连接
# 系统资源限制
## 增加系统文件描述符限制
fs.file-max = 1048576
# IPv4协议优化
## 启用TCP SYN Cookies(防止SYN Flood攻击)
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_synack_retries = 2 # 添加SYN+ACK重试次数限制
net.ipv4.tcp_syn_retries = 2 # 添加SYN重试次数限制
## 禁用TCP慢启动重启
net.ipv4.tcp_slow_start_after_idle = 0
# 本地端口范围
## 扩大可用的本地端口范围
net.ipv4.ip_local_port_range = 1024 65535
# 路由优化
## 启用路由缓存
net.ipv4.route.gc_timeout = 100
# 安全性优化
## 禁用ICMP回显请求(ping)
# net.ipv4.icmp_echo_ignore_all = 1 # 建议注释掉,除非特殊需求
# 内存管理优化
## 允许系统分配所有物理内存
vm.overcommit_memory = 1 # 保持不变,适合大多数场景
# 大页内存和内存管理优化
vm.nr_hugepages = 512 # 保持不变,适合当前内存配置
vm.swappiness = 10 # 保持不变,减少使用swap
vm.dirty_ratio = 60 # 保持不变,适合大内存服务器
vm.dirty_background_ratio = 2 # 保持不变,在后台刷新脏页
# 补充优化
net.ipv4.tcp_adv_win_scale = 2 # 添加TCP窗口缩放因子优化
net.ipv4.tcp_fin_timeout = 15 # 添加FIN超时优化
参数调整
# BBR3网络优化配置文件详细解析与参数调整指南
这个配置文件(bbr3_network_optimization.conf
)是针对Linux系统的网络性能优化设置,主要启用了BBR拥塞控制算法并优化了各种网络参数。以下是详细解释和不同服务器配置下的参数调整建议:
1. 拥塞控制算法设置
net.ipv4.tcp_congestion_control = bbr # 升级为BBR3,提供更好的拥塞控制
net.core.default_qdisc = fq_codel # 使用fq_codel替代fq,更好地处理缓冲区膨胀
- 确认你的内核支持BBR3。如果不支持,可以使用
bbr
或cubic
- 可以通过
sysctl net.ipv4.tcp_available_congestion_control
检查可用的拥塞控制算法 - 对于大多数服务器,
fq_codel
是一个很好的选择,但如果你的服务器主要处理大文件传输,可以考虑使用fq
2. 网络缓冲区设置
net.core.rmem_default = 1048576 # 保持1MB默认接收缓冲区
net.core.wmem_default = 1048576 # 保持1MB默认发送缓冲区
net.core.rmem_max = 33554432 # 增加到32MB,提升高带宽场景性能
net.core.wmem_max = 33554432 # 增加到32MB,提升高带宽场景性能
net.ipv4.tcp_rmem = 4096 1048576 16777216
net.ipv4.tcp_wmem = 4096 1048576 16777216
调整建议:
低内存服务器(≤4GB):
net.core.rmem_max = 16777216 # 16MB
net.core.wmem_max = 16777216 # 16MB
net.ipv4.tcp_rmem = 4096 524288 8388608
net.ipv4.tcp_wmem = 4096 524288 8388608
中等配置服务器(8-16GB):
net.core.rmem_max = 25165824 # 24MB
net.core.wmem_max = 25165824 # 24MB
net.ipv4.tcp_rmem = 4096 1048576 12582912
net.ipv4.tcp_wmem = 4096 1048576 12582912
高配置服务器(≥32GB):
保持原配置或进一步增加
3.网络性能优化
net.core.netdev_max_backlog = 8192
net.core.netdev_budget = 300
net.core.somaxconn = 16384
net.ipv4.tcp_max_syn_backlog = 8192
以下是调整建议:
中等负载服务器:
net.core.netdev_max_backlog = 16384
net.core.netdev_budget = 400
net.core.somaxconn = 32768
net.ipv4.tcp_max_syn_backlog = 16384
高负载服务器:
保持原配置或根据实际负载增加
4. TCP连接优化
net.ipv4.tcp_fastopen = 3 # 同时启用客户端和服务器端
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_dsack = 1 # 添加重复SACK支持
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_low_latency = 1 # 添加低延迟模式
net.ipv4.tcp_notsent_lowat = 16384 # 添加发送缓冲区低水位标记
net.ipv4.tcp_mtu_probing = 1 # 启用MTU探测
调整建议:
- 这些设置适用于大多数服务器配置,通常不需要根据硬件配置调整
- 如果服务器主要用于实时应用(如游戏服务器),保持
tcp_low_latency = 1
- 如果主要用于大文件传输,可以设置
tcp_low_latency = 0
5. TCP连接复用
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_max_tw_buckets = 65535
net.ipv4.tcp_keepalive_time = 600 # 添加TCP保活时间
net.ipv4.tcp_keepalive_intvl = 30 # 添加TCP保活间隔
net.ipv4.tcp_keepalive_probes = 5 # 添加TCP保活探测次数
调整建议:
低连接服务器:
net.ipv4.tcp_max_tw_buckets = 32768
net.ipv4.tcp_keepalive_time = 1200 # 更长的保活时间
高连接服务器:
net.ipv4.tcp_max_tw_buckets = 131070
net.ipv4.tcp_keepalive_time = 300 # 更短的保活时间
6.TCP内存优化
net.ipv4.tcp_mem = 786432 1048576 26777216 # 增加最大值以支持更多连接
调整建议:
低内存服务器(≤4GB):
net.ipv4.tcp_mem = 196608 262144 6291456
中等内存服务器(8-16GB):
net.ipv4.tcp_mem = 393216 524288 13107200
高内存服务器(≥32GB):保持原配置或增加
7. 系统资源限制
fs.file-max = 1048576
调整建议:
- 低负载服务器:
fs.file-max = 262144
- 中等负载服务器:
fs.file-max = 524288
- 高负载服务器: 保持原配置或增加
8. IPv4协议优化
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_synack_retries = 2 # 添加SYN+ACK重试次数限制
net.ipv4.tcp_syn_retries = 2 # 添加SYN重试次数限制
net.ipv4.tcp_slow_start_after_idle = 0
调整建议:
- 这些安全设置适用于大多数服务器,通常不需要根据硬件配置调整
9. 本地端口范围
net.ipv4.ip_local_port_range = 1024 65535
调整建议:
- 对于大多数服务器配置,这个设置是合适的
- 如果服务器运行特定应用需要保留某些端口,可以调整范围
10. 内存管理优化
vm.overcommit_memory = 1 # 保持不变,适合大多数场景
vm.nr_hugepages = 512 # 保持不变,适合当前内存配置
vm.swappiness = 10 # 保持不变,减少使用swap
vm.dirty_ratio = 60 # 保持不变,适合大内存服务器
vm.dirty_background_ratio = 2 # 保持不变,在后台刷新脏页
调整建议:
低内存服务器(≤4GB):
vm.nr_hugepages = 128 vm.swappiness = 30 vm.dirty_ratio = 30
中等内存服务器(8-16GB):
vm.nr_hugepages = 256 vm.swappiness = 20 vm.dirty_ratio = 40
高内存服务器(≥32GB):保持原配置
刷新配置
sudo sysctl -p
验证
查看BBR3状态:
modinfo tcp_bbr
如果提示modinfo: ERROR: Module tcp_bbr not found.错误请执行以下命令再查看BBR3状态
sudo depmod
© 版权声明
本站网络名称:
小怪兽
本站永久网址:
https://77il.cn
网站侵权说明:
本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长QQ3031379629删除处理。
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
THE END
请登录后查看评论内容