Linux 4.9 以上的内核提供了 Google 开发的 BBR 拥塞控制算法,听说对于某加速有奇效。
下面就来介绍如何升级Kernel。
更新Kernel可以选择自己编译,你需要下载Kernel的源码,同时根据机器的配置进行修改
还要明白 Kernel 中每个配置选项的修改会带来什么后果. 只有对软件和硬件都非常熟悉的人才能配置出一个好的私人订制的内核。
另外有一种简单的方法就是直接安装别人打包好的deb文件,也就是通用Kernel,没有具体对机器进行优化。
这种方法简单,耗时短,易安装。

通用内核

首先你要知道你装的是32位还是64位电脑
通用内核下载地址
http://kernel.ubuntu.com/~kernel-ppa/mainline
现在最新版内核是4.11,就在上面的地址后面加上v4.11/
http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.11/
不论是64位还是32位,你会发现下面5个文件

  1. linux-headers-4.11.0-041100_4.11.0-041100.201705041534_all.deb
  2. linux-headers-4.11.0-041100-generic_4.11.0-1. 041100.201705041534_amd64.deb
  3. linux-headers-4.11.0-041100-lowlatency_4.11.0-041100.201705041534_amd64.deb
  4. linux-image-4.11.0-041100-generic_4.11.0-041100.201705041534_amd64.deb
  5. linux-image-4.11.0-041100-lowlatency_4.11.0-041100.201705041534_amd64.deb

第一个是必须用到的,2和3选一个,4和5选一个,一般都是用带generic的。

下载之后安装所有的deb文件
sudo dpkg -i *.deb
安装成功了会在/boot目录有对应的文件

1
2
3
4
5
6
7
8
9
abi-3.19.0-25-generic memtest86+.bin
abi-4.11.3-041103-generic memtest86+.elf
config-3.13.11-ckt39 memtest86+_multiboot.bin
config-3.19.0-25-generic System.map-3.13.11-ckt39
config-4.11.3-041103-generic System.map-3.19.0-25-generic
grub System.map-4.11.3-041103-generic
initrd.img-3.13.11-ckt39 vmlinuz-3.13.11-ckt39
initrd.img-3.19.0-25-generic vmlinuz-3.19.0-25-generic
initrd.img-4.11.3-041103-generic vmlinuz-4.11.3-041103-generic

查询目前安装的内核
dpkg -l | grep linux-image
更新启动引导
update-grub
重启后验证
uname -a

开启BBR

重启后,修改内核参数

1
2
3
4
5
6
7
8
vim /etc/sysctl.conf
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
生效
sysctl -p
net.ipv4.tcp_congestion_control = bbr
sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = bbr cubic reno

编译内核

安装依赖

1
2
3
4
sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install libncurses5-dev
sudo apt-get build-dep linux-image-$(uname -r)

下载源码

apt-get source linux-image-4.4.0-47-generic

配置内核

1
2
3
4
# 1. 拷贝目前机器内核的配置选项, 在该配置的基础上进行修改
make oldconfig
# 2. 编译内核, 在该命令接下来的截面中选择 Processor Family 为 core2, 这个是可选的最新的 CPU 类型
make menuconfig

编译内核和modules
make make modules
安装 modules和Kernel
sudo make install_modules && sudo make install
更新 bootloader
sudo update-grub

参考
http://shuokay.com/2016/01/02/ubuntu-compile-kernel/
http://4594296.blog.51cto.com/4584296/1792768
https://favoorr.github.io/2017/02/11/update-kernel-for-ubuntu/