NixOS läuft mit nur 96 MB RAM im Leerlauf und baut sich in 512 MB neu

Shrinking NixOS RAM footprint and resource requirements to the bare minimum

Ein Nutzer hat die RAM-Anforderungen von NixOS 26.05 auf einer KVM-VPS auf das Minimum reduziert: Statt 288 MB im Leerlauf und 896 MB für einen Rebuild reichen nun 96 MB bzw. 512 MB. Erreicht wurde das durch Deaktivieren von Kernel-Profiling, KFENCE, transparenten Hugepages, systemd-resolved und -timesyncd sowie durch ein abgespecktes Kernel-Modulverzeichnis und optimierte GC-Einstellungen für Nix.

Ich hatte ursprünglich einen halben Tag dafür eingeplant; tatsächlich hat es fast 3 Tage gedauert.
  1. KingMachiavelli

    Ich wünschte wirklich, das Bauen minimaler, maßgeschneiderter Kernel wäre einfacher. NixOS macht es einigermaßen erträglich, aber es bleibt ein Durcheinander aus eigenem kconfig, defconfig-Target-Hacking und manuellem Herausschneiden der nötigen Firmware und Kernelmodule. Der Kernel hat nicht einmal eine Schnittstelle, die anzeigt, welche Firmware-Blobs geladen wurden. Man kann eine gewisse Firmware-Signaturerzwingung machen, aber ich schätze, niemand kümmert sich darum, dass zufällige Binär-Blobs laufen, nur damit die Webcam des Laptops funktioniert.

    Es wäre sehr nützlich, wenn ich einfach einen Kernel booten und sofort einen Bericht bekommen könnte, welche Kernel-Konfiguration, Firmware und Module tatsächlich verwendet/benötigt werden. Irgendwie geht das ja, aber

  2. attilaolah

    Ich habe ein ähnliches Experiment gemacht, aber auf Bare Metal, und mein Engpass war die Festplatte, nicht der RAM, also brachte das Reduzieren von Firmware und Modulen den größten Gewinn. Und ich kompiliere auf einem anderen Host und schiebe nur die Binaries auf die resultierenden Systeme.

    Eines habe ich mich gefragt: ob es helfen würde, einige Leaf-Pakete auf Musl umzustellen. Das ganze System für Musl neu zu bauen, scheint meistens kaputt zu sein, aber viele Leaf-Pakete lassen sich trotzdem cross-compilieren. Also z. B. würde ich Caddy- oder OpenBao-Binaries bekommen usw.

  3. wrxd

    Am Rande, aber TierHive scheint großartige Arbeit zu leisten. Man kann bei ihnen einen VPS für etwa ein paar Dollar im Jahr bekommen.

    Er wird nicht leistungsstark sein (128 MB RAM, 1 GB Speicher), aber wenn man Alpine oder NetBSD laufen lässt, kann man ihn als WireGuard-Peer nutzen, um eine kleine Website zu hosten oder ein paar Cronjobs laufen zu lassen.

Mehr von diesem Tag

2026-11-03