NixOS를 512MB RAM에서 빌드까지 돌려버린 최적화 기록
Shrinking NixOS RAM footprint and resource requirements to the bare minimum
NixOS 26.05를 손봐서 유휴 메모리를 288MB에서 96MB까지 줄이고, 원래 896MB가 필요했던 재빌드를 512MB VPS에서 OOM 없이 끝냈다. 커널 파라미터 조정, 불필요한 모듈 블랙리스트, 모듈 트리 축소, systemd 서비스 대체, zram과 Nix GC 튜닝을 단계별로 적용했고, 3일 걸린 작업의 전체 설정 파일도 함께 공개한다.
처음엔 반나절이면 될 줄 알았는데, 실제로는 3일에 가까운 시간이 걸렸다.
HN 토론
11- KingMachiavelli
최소한의 커스텀 커널을 빌드하는 게 정말 더 쉬워졌으면 좋겠어요. NixOS가 어느 정도는 합리적으로 만들어주긴 하지만, 여전히 커스텀 kconfig, defconfig 타깃 해킹, 필요한 펌웨어와 커널 모듈을 수동으로 잘라내는 일로 엉망이죠. 커널에는 어떤 펌웨어 블롭이 로드됐는지 보여주는 인터페이스조차 없어요. 펌웨어 서명 강제를 할 수는 있지만, 노트북 웹캠을 작동시키려고 무작위 바이너리 블롭이 돌아가는 걸 아무도 신경 안 쓰는 것 같네요.
커널을 부팅하기만 하면 어떤 커널 설정, 펌웨어, 모듈이 실제로 사용/필요한지 즉시 보고서를 받을 수 있다면 정말 유용할 텐데요. 어느 정도는 할 수 있지만
- yjftsjthsd-h
> KVM 게스트가 절대 갖지 않거나 필요로 하지 않는 하드웨어를 블랙리스트에 추가
그게 문제가 된다는 게 좀 의외네요. Linux는 하드웨어를 볼 때만 드라이버를 지연 로딩해야 하지 않나요?
- wrxd
좀 딴 얘기지만 TierHive가 좋은 일을 하고 있는 것 같아요. 그곳에서 1년에 약 2달러 정도로 VPS를 얻을 수 있어요.
강력하진 않겠지만(128MB RAM, 1GB 스토리지) Alpine이나 NetBSD를 돌리면 WireGuard 피어로 쓰거나 작은 웹사이트를 호스팅하거나 크론 작업을 돌리는 데 사용할 수 있어요.