Ubuntu 20.04 に xanmod カーネルを入れて性能を上げる
最近暇で仕方ないから Linux カーネルをいじり始めた。Ubuntu 20.04 のデフォルトカーネルはまだ 5.4 で、OEM カーネルを入れても 5.6 止まり。今のカーネルはもう 5.9 まで来てるんだぜ? 新しいもの好きにはまったく物足りない。しかも最新カーネルに入った新機能はたしかに性能を上げてくれる。Canonical の Daniel Van Vugt 氏が最近、なぜ Gnome-shell は 4K 解像度だとあんなに遅いのか調べてて、結局カーネルの Intel 内蔵 GPU のスケジューリングに問題があってボトルネックになってたと判明した。まあこの問題も 5.8 でかなり緩和されたらしい。

(後半の半分は無視していい。どうせ Canonical の人が Gnome にパッチを投げても、Red Hat のバカどもが相変わらず足を引っ張り続けるだけだ。)
とにかくカーネルのバージョンを上げれば性能は改善する。ただ普通のチュートリアルは Ubuntu の Mainline PPA から新しいカーネルを探せと言う。でもああいうカーネルは純粋すぎて、かえって逆効果になることもある。たとえば俺のノート PC は新しいカーネルを入れたら起動が遅くなった。そこで xanmod というサードパーティ製カーネルを見つけた。ネットの評判を検索してみるとどれもなかなか良さそうだし、xanmod のカーネルはメンテも活発で独自のリポジトリもある。試してみることにした。
xanmod カーネルのインストールは公式サイトで確認できる:
カーネルは以下のブランチに分かれている。個人的には edge にしとけば問題ないと思う。

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
あとは再起動すればいい。
使用感:
しばらく使ってみた感想としては、性能の向上はまあまあってところ。少なくとも元の Mainline カーネルみたいに足を引っ張ることはない。ただたまに ThunderBolt3 Dock を使うと応答が遅くなるバグが出る。カーネルのせいかはわからん。
もちろん俺みたいに最新カーネルを使いたいけど Mainline は嫌だという人なら、xanmod は悪くない選択だと思う。
xanmod カーネルを使いたくなくなったら、apt コマンドで削除して再起動すればいい。
コメントは中国語の本家サイトで受け付けています。このミラーは閲覧専用です。