debian升级内核
为什么需要升级内核
BBR 已经在4.9.0-rc8内核版本首次测试,而且以后所有的 正式/测试 的内核版本中自带 你可以在 Kernel.org 得到最新的Linux内核版本情况.
首先是挑选需要的版本,官方 upstream kernel 列表:http://kernel.ubuntu.com/~kernel-ppa/mainline/
最好请勿在生产环境安装,以免产生不可预测之后果。
重启开不了鸡的,打开 VPS 后台控制面板的 VNC, 开机卡在 grub 引导, 手动选择内核即可。
除了OpenVZ,理论上其他虚拟化全部都支持.
以下命令全部以Root登录执行的,你可能需要Sudo.
内核一般由 2 部份组成,linux-headers 是内核的头文件,当你编译的程序需要引用内核时就靠它了; linux-image 开头的文件就是内核编译后的镜像,是实际可运行的部分。generic 和 lowlatency 则是针对不同的使用场景进行调优的版本。
稍微查了一下 lowlatency 的信息。它比较适用实时性要求较高的场景,比如说录音之类的使用场景,所谓有得必说失,代价可能是稳定性和吞吐量(这个就跟 BBR 的原理差不多,牺牲带宽换取速度,当然这里的吞吐量会不会也影响到网络就不知道咯)。我这边由于网络出口本身也就不怎么样,估计就是有差别也很难测得出来。总之,若你不知道选哪个的话,就用 generic 版本的。
安装配置
上面有 3 个 headers 和 2 个 image ,其中 headers 中的 all 是 generic 和 lowlatency 都需要的依赖。也就是一共要安装 3 个包。 接下来,把 3 个文件都 wget 到本地:
安装:
dpkg -i linux-*
配置使用新内核:
update-grub
reboot
正常启动,删除旧内核,通过以下的命令列出所有的 headers 和 image:
dpkg -l | grep linux-headers | awk '{print $2}'
dpkg -l | grep linux-image | awk '{print $2}'
然后把旧的 headers 和 image 一个个删除掉就行了:
apt-get purge xxxx
BBR 开启BBR
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
保存使命令生效.
sysctl -p
查看状况
如果以下命令输出有bbr,那么已经成功开启BBR.
sysctl net.ipv4.tcp_available_congestion_control
如果以下命令输出有tcp-bbr,那么BBR正在运行.
lsmod | grep bbr
第二种源升级
How To Upgrade Kernel
apt-cache search linux-image
会显示一堆kernel信息,选择最新的,请小心测试
apt-get install linux-image开头的最新源