BBR是啥,有什么用我不知道,我只知道谷歌出品,必属精品。linux内核版本要高于4.9,才支持BBR,所以今天讲一讲Ubuntu内核版本的升级操作。
首先查看当前内核版本:
root@HuangQiDi:~# uname -r 4.4.0-83-generic
得到两个信息,版本号4.4明显不够,还有后面一个generic,下文要用到。顺便看一下系统位数:
root@HuangQiDi:~# arch x86_64
升级Ubuntu内核
Ubuntu的最新内核可以在http://kernel.ubuntu.com/~kernel-ppa/mAInline/ 找到,打开网页后,按End键,跳到最下面,找一个版本最大,不带rc字样的链接点击进去,
这里我们选择4.12.4,点击进去后,一大堆内核的链接,我们下载哪一个呢?文本开始,我们通过uname -r拿到一个generic,通过arch确定系统为64位,现在这两个东西就有用了,此时我们在浏览器窗口按下F3执行搜索,由于这个搜索框不支持正则,我们只能搜AMD64字样,然后目测generic,这里顺便说一句,为什么64位架构要叫amd64呢,虽然现在amd被牙膏厂吊打,但世界上第一枚64位的处理器确是AMD发布的。
下载内核:
root@HuangQiDi:~# wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.12.4/linux-image-4.12.4-041204-generic_4.12.4-041204.201707271932_amd64.deb
安装内核:
root@HuangQiDi:~# dpkg -i linux-image-4.12.4-041204-generic_4.12.4-041204.201707271932_amd64.deb
最后,执行命令update-grub,更新grub引导使用新的内核。
root@HuangQiDi:~# update-grub Generating grub configuration file ... Found linux image: /boot/vmlinuz-4.12.4-041204-generic Found initrd image: /boot/initrd.img-4.12.4-041204-generic Found linux image: /boot/vmlinuz-4.4.0-83-generic Found initrd image: /boot/initrd.img-4.4.0-83-generic done
这里很多有洁癖的人喜欢删除旧内核,我特别不建议这么做,一个内核才多大啊,万一新内核无法正常启动,那不是自找麻烦吗。
重启系统后检查内核是否成功升级:
root@HuangQiDi:~# uname -r 4.12.4-041204-generic
启用BBR
root@HuangQiDi:~# echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf root@HuangQiDi:~# echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf root@HuangQiDi:~# sysctl -p net.core.default_qdisc = fq net.ipv4.tcp_congestion_control = bbr
net.core.default_qdisc的值真有意思fq,番茄番茄。
此时执行sysctl net.ipv4.tcp_available_congestion_control,若返回结果为“net.ipv4.tcp_available_congestion_control = bbr cubic reno”,表示BBR模块开启成功。
最后来稍微看下这个BBR模块
root@HuangQiDi:~# lsmod | sed -n '1p;/bbr/p' Module Size Used by tcp_bbr 20480 0
Used by下面的0,表示该模块可以随时卸载。卸载命令为modprobe -r tcp_bbr
查看模块详细信息:
root@HuangQiDi:~# modinfo tcp_bbr filename: /lib/modules/4.12.4-041204-generic/kernel/net/ipv4/tcp_bbr.ko description: TCP BBR (Bottleneck Bandwidth and RTT) license: Dual BSD/GPL author: Soheil Hassas Yeganeh author: Yuchung Cheng author: Neal Cardwell author: Van Jacobson srcversion: 3D237D080AC188DD9000A9A depends: intree: Y vermagic: 4.12.4-041204-generic SMP mod_unload
谷歌大法好