NixOSを512MBのVPSで動かし、再ビルドも成功させた話
Shrinking NixOS RAM footprint and resource requirements to the bare minimum
NixOS 26.05の標準構成はアイドル時288MB、再ビルドには896MB必要だった。これをカーネルパラメータや不要モジュールの削除、zramやGCチューニングでアイドル96MBまで削減。512MBのVPS上でチャネル更新とカーネル切り替えを含む再ビルドもOOMなしで完結する。設定ファイルも公開されている。
THPをオフにすると2GBで52MBが解放され、896MBでは利用可能メモリが103MB増えた。ハイエンドや本番環境では無効にすべきでない理由もあるが、日常用途では違いに気づかないだろう。
HNでの議論
10- KingMachiavelli
最小限のカスタムカーネルをビルドするのがもっと簡単だったらいいのに、と本当に思う。NixOSのおかげでいくらかマシにはなるけど、それでもカスタムkconfigやdefconfigターゲットのハック、必要なファームウェアやカーネルモジュールを手動で切り出す作業など、ごちゃごちゃしている。カーネルにはどのファームウェアブロブがロードされたかを表示するインターフェースすらない。ファームウェア署名の強制はできるけど、ラップトップのウェブカメラを動かすためだけにランダムなバイナリブロブが動いていることを誰も気にしていないんだろうな。
カーネルをブートするだけで、どのカーネル設定、ファームウェア、モジュールが実際に使われている/必要とされているかの即時レポートが得られたらすごく便利だろう。ある程度はできるけど
- wrxd
話は逸れるけど、TierHiveは素晴らしい仕事をしているようだ。彼らから年間数ドル程度でVPSを手に入れられる。
パワフルではないけれど(RAM 128MB、ストレージ1GB)、AlpineやNetBSDを動かせば、WireGuardのピアとして使ったり、小さなウェブサイトをホストしたり、いくつかのcronジョブを実行したりできる。
- yjftsjthsd-h
> KVMゲストが決して持たない、あるいは必要としないハードウェアをブラックリストに入れた
それが問題になるとは少し驚きだ。Linuxはハードウェアを検出したときだけドライバを遅延ロードするべきではないのか?