前言
BBR是一种由GOOGLE开发的一种TCP拥塞控制算法,能够最大化网络宽带的的利用率且减少延迟。但是我发现很多厂商默认是没有开启这个优化的(据我观察,阿里云和百度云默认都没有开这个),这篇文章就是记录下如何给linux服务器开启bbr网络优化的
检查BBR是否开启
在终端输入下面的命令便可以检查是否启用了bbr网络优化算法
sysctl net.ipv4.tcp_congestion_control
如果输出是下面则代表没开启(这个代表默认算法是Cubic)
root@q2019com:~# sysctl net.ipv4.tcp_congestion_control
net.ipv4.tcp_congestion_control = cubic
root@q2019com:~#
如果输出是
root@cvm-3nidfn62h2224:~# sysctl net.ipv4.tcp_congestion_control
net.ipv4.tcp_congestion_control = bbr
root@cvm-3nidfn62h2224:~#
则代表开启了bbr网络优化算法。
开启BBR网络优化
使用root权限,输入
modprobe tcp_bbr
这一步是加载 bbr 模块
sysctl -w net.core.default_qdisc=fq
sysctl -w net.ipv4.tcp_congestion_control=bbr
这两个就是启用了fq调度器+拥塞控制程序
输入完后,下一步输入
sysctl net.ipv4.tcp_congestion_control
sysctl net.ipv4.tcp_available_congestion_control
看下是否输出是下面这样的,输出有bbr字眼,这个就代表bbr已经启动成功并在工作了
root@cvm-3nidfn62h2224:~# sysctl net.ipv4.tcp_congestion_control
net.ipv4.tcp_congestion_control = bbr
root@cvm-3nidfn62h2224:~# sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = reno cubic bbr
设置持久化
刚刚的命令只是让其在本次运行的时候有效,重启还会消失,所以我们要配置下持久化,输入下面的命令(请一行一行的输入)
cat >/etc/sysctl.d/99-bbr.conf <<'EOF'
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
EOF
输入完后,重新加载下sysctl的参数
sysctl --system
配置就完成了。
备注
请注意,上面的操作建议在业务低峰期使用,且强烈推荐操作前做个备份。