最近显得无聊,开始倒腾 Linux 内核了,因为 Ubuntu 20.04 的默认内核还是 5.4,就算你安装了 OEM 内核,版本也只是 5.6,要知道现在的内核版本都已经飞到 5.9 了,对于追新的人来说实在是不够看。而且最新内核集成的一些新特性的确是可以提升性能的。Canonical 的工作人员 Daniel Van Vugt 最近就在研究为什么 Gnome-shell 在 4K 分辨率下性能如此之差,最后发现是内核对于 Intel 核显的调度有问题,造成了性能的瓶颈。不过这个问题在 5.8 下似乎有了很大的缓解。

Screenshot-20200817094313-804x303.png

(请无视后面那半句话,反正 Canonical 的人给 Gnome 提交补丁,Red Hat 的傻逼们还是会继续卡就是了。)

总而言之提升内核版本的确是可以改善性能的,但是一般的教程都会说让你去 Ubuntu 的 Mainline 的 PPA 里找新内核,不过那些内核过于纯净,有些时候反而会适得其反。譬如我的笔记本安装了新内核之后开机速度反而会受到影响,这时候我发现了一个叫做 xanmod 的第三方内核,而且搜索了一下网络上的评价,似乎都很不错,而且 xanmod 的内核维护也很积极,有自己的源,所以决定尝试一下。

xanmod 内核的安装可以去它们的官方网站来查询:

https://xanmod.org/

可以看到它们的内核分为以下几个分支,我个人觉得直接上 edge 是没什么问题的。

Screenshot-20200817094837-924x209.png

xanmod 内核的特性很多地方都有,官方也写的有很多,不过大多数还是以下几点:

  • 改善了 CPU 调度能力
  • 改善了 I/O 的调度能力
  • 增加了一些和性能有关的第三方补丁
  • 使用了最新的 GCC 进行编译
  • 使用了最新的 MicroCode

不过根据 Phoronix 的文章来看,性能的提升还算比较明显:

https://www.phoronix.com/scan.php?page=article&item=xanmod-2020-kernel&num=1

安装的方式也比较简单,添加源并且更新安装就行了:

echo 'deb http://deb.xanmod.org releases main' | sudo tee /etc/apt/sources.list.d/xanmod-kernel.list && wget -qO - https://dl.xanmod.org/gpg.key | sudo apt-key add -

然后安装,我个人安装的是最新的 5.8.1 的 edge:

sudo apt update && sudo apt install linux-xanmod-edge

安装完毕后还可以安装最新的微码:

sudo apt update && sudo apt install linux-xanmod

如果是 AMD Yes 的话就安装这个:

sudo apt install amd64-microcode

xanmod 的内核启用了新的 CAKE 调度算法,如果你在意网络性能的话也可以启用:

echo 'net.core.default_qdisc = cake' | sudo tee /etc/sysctl.d/90-override.conf

之后重启就可以了。

使用感受:

经过一段时间的使用,感觉在性能上的提升其实还 OK,至少没有像原本的 Mainline 内核那样拖后腿,只不过偶尔使用 ThunderBolt3 Dock 的时候会出现一些响应比较慢的 Bug,不知道是不是内核的关系。

当然如果你只是像我一样想用最新的内核,但是又不喜欢 Mainline 版本的话,使用 xanmod 应该也是不错的选择。

如果你不想用 xanmod 内核了,可以用 apt 命令删除重启即可。