首先感謝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成功。
