2.6.2 BBR 应用实践
Linux 内核从 4.9 开始集成了 BBR 拥塞控制算法,此后,只要几个命令就能使用 BBR 提升网络吞吐。
- 首先,查询系统所支持的拥塞控制算法。
$ sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_congestion_control = bbr cubic reno
上面返回的结果中,显示当前系统支持 bbr cubic reno 三种拥塞控制算法。
- 查询当前使用的拥塞控制算法。
$ sysctl net.ipv4.tcp_congestion_control
net.ipv4.tcp_congestion_control = cubic
绝大部分 Linux 系统默认的拥塞控制算法为 Cubic 算法。
- 指定拥塞控制算法为 bbr。
$ echo net.ipv4.tcp_congestion_control=bbr >> /etc/sysctl.conf && sysctl -p
网络拥塞控制是单向生效,也就是说作为下行方的服务端调整了,客户端与服务端之间的网络吞吐即可提升。
拥塞控制算法设置为 BBR 之后,我们可以使用 tc 工具模拟真实的网络环境,测试 BBR 的效果。
下面,使用 tc 工具设置两台服务器的收/发增加 25ms 的延迟以及 1% 的丢包率。
$ tc qdisc add dev eth0 root netem loss 1% latency 25ms
设置完测试环境后,在客户端节点中,使用 iperf3 命令测试两个主机之间的网络传输性能。iperf3 参数 -c 的意思是,以客户端模式运行,请求 10.0.1.188 服务端的 8080 端口。
$ iperf3 -c 10.0.1.188 -p 8080
总字数:341字