2020.9.8 增加Ubuntu 更新内核的方法
BBR 可以加速TCP,尽可能跑满带宽, 并且尽量不要有排队的情况。在网络环境较差的情况下,使用BBR有比较好的效果。
Linux 内核 4.9及以上才能启用BBR。如果版本过低,需先升级内核。
下面的教程为先升级内核再开启BBR。
(BBR还有一些第三方修改版、暴力版,这里就不列举了)
Debian 8+ / Ubuntu 14.04
下载最新内核,最新内核查看这里
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.16/linux-image-4.16.0-041600-generic_4.16.0-041600.201804012230_amd64.deb
安装内核
dpkg -i linux-image-4.*.deb
删除旧内核(可选)
dpkg -l | grep linux-image apt-get purge
更新 grub 系统引导文件并重启
update-grub reboot
Ubuntu 16.04
安装 Hardware Enablement Stack (HWE),自动更新内核
apt install --install-recommends linux-generic-hwe-16.04
删除旧内核(可选)
apt autoremove
Ubuntu 18.04(完整过程)
Ubuntu 18的内核很新,已经支持bbr,直接用下面的命令开启
修改系统变量
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
保存生效
sysctl -p
查看内核是否已开启BBR
sysctl net.ipv4.tcp_available_congestion_control
显示以下即已开启:
net.ipv4.tcp_available_congestion_control = bbr cubic reno
查看BBR是否启动
lsmod | grep bbr
显示以下即启动成功:
tcp_bbr 20480 8
CentOS 6
下载更换内核
最新内核查看这里
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm yum --enablerepo=elrepo-kernel install kernel-ml -y
查看内核是否安装成功
rpm -qa | grep kernel
删除旧内核(可选)
rpm -ev
更新 grub 系统引导文件并重启
sed -i 's:default=.*:default=0:g' /etc/grub.conf reboot
开不了机的打开 vps 后台控制面板的 vnc, 开机卡在 grub 引导, 只需要手动选择内核就可以了
安装完成后不要忘记修改 /boot/grub/menu.lst 和 /etc/grub.conf,将这两个文件中旧内核的启动项删除即可避免无法重启的问题。
更新到最新版内核
yum --enablerepo=elrepo-kernel update -y reboot
CentOS 7
下载更换内核
最新内核查看这里
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm yum --enablerepo=elrepo-kernel install kernel-ml -y
查看内核是否安装成功
rpm -qa | grep kernel
删除旧内核(可选)
rpm -ev
更新 grub 系统引导文件并重启
egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \' grub2-set-default 0 # default 0 表示第一个内核设置为默认运行, 选择最新内核就对了 reboot
注意,某些服务商(如 Digital Ocean)可能需要首先将 VPS 配置为可自定义内核,然后 grub2 的配置才会生效。
重新启动后,如果会出现 “read-only file system” 的错误,root账户下执行 mount -o remount rw / 即可
更新到最新版内核
方法同 CentOS 6
启用BBR
开机后 uname -r
看看是不是内核 >= 4.9
执行 lsmod | grep bbr
,如果结果中没有 tcp_bbr 的话就先执行
modprobe tcp_bbr echo "tcp_bbr" | sudo tee --append /etc/modules-load.d/modules.conf
执行
echo "net.core.default_qdisc=fq" | sudo tee --append /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee --append /etc/sysctl.conf
保存生效
sysctl -p
查询
sysctl net.ipv4.tcp_available_congestion_control sysctl net.ipv4.tcp_congestion_control
如果结果都有 bbr, 则证明你的内核已开启 bbr
执行 lsmod | grep bbr
, 看到有 tcp_bbr 模块即说明 bbr 已启动
Ubuntu 18.04 升级内核
因部分内核开启bbr后会导致网络异常,故需要升级内核来解决。
查看内核:
uname -sr
查看最新稳定内核:
一般选择 stable (稳定版)或 longterm (长期支持版)
确定内核版本后,前往下载Ubuntu 内核:
https://kernel.ubuntu.com/~kernel-ppa/mainline/
较新的版本在下面,往下拉能看到你选定的版本号文件夹,点击进入
最后需要选择的是平台,我们用的是 x86 平台,选择 amd64
我们需要的软件包共有四个,即两个header头文件,一个image镜像,一个modules模块:
amd64/linux-headers-5.4.63-050463_5.4.63-050463.202009051033_all.deb
amd64/linux-headers-5.4.63-050463-generic_5.4.63-050463.202009051033_amd64.deb
amd64/linux-image-unsigned-5.4.63-050463-generic_5.4.63-050463.202009051033_amd64.deb
amd64/linux-modules-5.4.63-050463-generic_5.4.63-050463.202009051033_amd64.deb
下载:
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.4.63/amd64/linux-headers-5.4.63-050463_5.4.63-050463.202009051033_all.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.4.63/amd64/linux-headers-5.4.63-050463-generic_5.4.63-050463.202009051033_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.4.63/amd64/linux-image-unsigned-5.4.63-050463-generic_5.4.63-050463.202009051033_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.4.63/amd64/linux-modules-5.4.63-050463-generic_5.4.63-050463.202009051033_amd64.deb
安装:
dpkg -i *.deb
安装完成后,重启:
reboot
重新进入系统或执行 uname -sr
就能看到更新的内核了
参考自:
https://www.moerats.com/archives/612/
相关链接: