NixOS 内存占用压至 96MB 实战
Shrinking NixOS RAM footprint and resource requirements to the bare minimum
很多人惊讶于 NixOS 在极低资源下的运行能力,我花了三天时间将其内存占用从默认的 288MB 压缩至空闲 96MB,甚至在 512MB 内存的 VPS 上也能顺利完成系统重建。通过调整内核参数、禁用透明大页、剔除 KVM 不需要的硬件驱动、精简 systemd 服务以及优化 Nix 垃圾回收策略,系统在保留核心功能的同时大幅降低了资源需求。虽然跨版本升级仍需谨慎,但这套方案证明了 NixOS 在低配环境下的巨大潜力。
关闭透明大页是单次收益最大的优化,它释放了原本被内核预留而无法使用的内存。
HN 评论区
11- KingMachiavelli
我真心希望构建精简的定制内核能更容易一些。NixOS 让这事儿稍微有点条理,但本质上仍是一团乱麻:要折腾自定义的 kconfig、修改 defconfig 目标,还得手动剔除不必要的固件和内核模块。内核甚至没有接口能显示加载了哪些固件 blob。虽然可以做一些固件签名强制验证,但估计没人会在意为了能让笔记本摄像头正常工作而运行一堆随机二进制 blob。
如果我启动内核后能立刻得到一份报告,列出实际使用或需要的内核配置、固件和模块,那就太有用不过了。虽然某种程度上能做到,但……
- yjftsjthsd-h
> 黑名单化 KVM 虚拟机从未拥有或不需要的硬件
我有点惊讶这居然会有影响;Linux 不应该是在检测到硬件时才懒加载驱动吗?
- wrxd
稍微跑题一下,但 TierHive 看起来做得很棒。你从他们那里租个 VPS,一年只要几美元。
性能肯定不强(128MB 内存,1GB 存储),但如果你运行 Alpine 或 NetBSD,就可以把它当作 WireGuard 对等节点,用来托管一个小网站,或者跑一些 cron 任务。