我们在所有 RHEL 8.6 机器上配置了如下 BBR 设置:(根据 Red Hat 文档 [https://access.redhat.com/solutions/3713681])。目标是评估 BBR 配置是否能带来任何网络改进。如果没有,我们计划恢复到默认的 Cubic 设置。
sysctl -w net.ipv4.tcp_congestion_control=bbr
echo "net.ipv4.tcp_congestion_control = bbr" >> /etc/sysctl.conf
modprobe tcp_bbr
为了恢复更改,我写了以下步骤
sysctl -w net.ipv4.tcp_congestion_control=cubic
delete from /etc/sysctl.conf the line with net.ipv4.tcp_congestion_control = bbr
但我不知道如何恢复更改modprobe tcp_bbr
我们只需要这样做:
modprobe tcp_cubic
或者
rmmod tcp_bbr
rmmod: ERROR: Module tcp_bbr is in use
否则?
重新启动 - 或者等到所有当前使用此拥塞控制方法的 TCP 套接字都关闭,然后一旦没有任何东西引用它,就应该可以删除该模块。
可以一次加载多种拥塞控制方法(可以全局设置、按路由设置或按套接字设置)。之前的 CUBIC 仍然会加载——甚至可能根据 Linux 发行版编译到主内核映像中——因此无需再次加载,尽管这样
modprobe
做也无妨。如果模块未使用,保持
tcp_bbr
加载状态是无害的。您可以通过配置每个路由的默认拥塞控制方法来进行测试,或者让程序通过 setsockopt() 来选择它,或者保持原样直到下次重启。的对立面
modprobe
实际上是modprobe -r [-v]
,因为两者都处理依赖关系树(前者加载额外的辅助模块,后者卸载不再需要的模块),而 的rmmod
对立面在于insmod
它们仅对指定的单个模块进行操作。(大致类似于“yum/dnf/apt”与“rpm/dpkg”的对立面。)