实录:FreeBSD开启BBR

首先感谢Netflix的工程师,是他们的工作使得FreeBSD上使用BBR成为可能。


这是Netflix相关项目的GitHub: tcplog_dumper

修改内核配置

# cd /usr/src/sys/amd64/conf
如果安装FreeBSD时没有选择安装内核源码,你可以直接解压FreeBSD发行镜像中的/usr/freebsd-dist/src.txz/usr/src/.
# cp GENERIC GENERIC-BBR

# ee GENERIC-BBR
调整配置,可以去掉许多不用的模块以提升性能和节省编译时间,修改ident的值为GENERIC-BBR,在ident这一项下面加入以下项目:

options TCPHPTS
options RATELIMIT
makeoptions WITH_EXTRA_TCP_STACKS=1

新建/etc/src.conf,内容为:

KERNCONF=GENERIC-BBR
MALLOC_PRODUCTION=yes

编译并安装内核

如果vps网络不好,中途可能断开。这时可以使用screen来开虚拟终端帮助解决问题,使用请自行搜索。
# /usr/sbin/config GENERIC-BBR
# cd ../compile/GENERIC-BBR
# make cleandepend && make depend
# make -jN
其中N建议为CPU核心数+1. 如果编译出错,通常原因是配置时模块缺失。实在不能确定是否需要的模块请不要禁用。
# make install
安装内核,完成后重启使用新内核。
# uname -a
如果显示出GENERIC-BBR,恭喜你,BBR内核编译并安装成功。

配置和加载BBR模块

# sysrc kld_list+="tcp_rack tcp_bbr"
启动时加载BBR模块。
# echo 'net.inet.tcp.functions_default=bbr' >> /etc/sysctl.conf
设置默认使用BBR,重启。
# sysctl net.inet.tcp.functions_default
如果结果是net.inet.tcp.functions_default: bbr,则启用BBR成功。

posted @ 2021-08-31 20:42  [Rn]7s2  阅读(783)  评论(0编辑  收藏  举报