我一直在研究如何bbr拥塞控制在我们的一些服务器上测试它们是否会对我们的工作负载产生任何影响。
我们在 Amazon Linux 2 上:
# uname -a
Linux ip-10-1-66-180.us-east-1.aws.dckr.io 4.14.173-137.229.amzn2.x86_64 #1 SMP Wed Apr 1 18:06:08 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
我查看了可用的拥塞控制并得到了这个
# cat /proc/sys/net/ipv4/tcp_available_congestion_control
cubic reno
这是否意味着bbr
我们的内核不支持?我看到有些人显示了上述命令的相同输出,并且仍然将sysctl
s 设置为bbr
regardless。
我还检查了内核模块,因为我在某处读到过某些bbr
模块需要加载,但我怀疑这对于旧内核来说是必要的。
# lsmod | grep -i bbr
有没有办法可以bbr
根据我之前提到的内核版本在我们的服务器上启用它?
答案1
Amazon Linux 2 中的内核确实包含 BBR 拥塞控制支持。您可以像启用任何其他拥塞控制方法一样启用它。
[root@localhost ~]# echo bbr > /proc/sys/net/ipv4/tcp_congestion_control
[root@localhost ~]# cat /proc/sys/net/ipv4/tcp_congestion_control
bbr
因为它是作为模块构建的,所以它是按需加载的,所以除非模块已经加载,否则它不会显示为可用。现在你可以看到它了:
[root@localhost ~]# cat /proc/sys/net/ipv4/tcp_available_congestion_control
bbr cubic reno
[root@localhost ~]# lsmod | grep -i bbr
tcp_bbr 20480 5