Энтузиаст ужал NixOS до 96 МБ ОЗУ и пересборки в 512 МБ
Shrinking NixOS RAM footprint and resource requirements to the bare minimum
Автор подробно описывает, как снизил потребление памяти NixOS 26.05 с 288 МБ до 96 МБ в простое и добился полной пересборки на VPS с 512 МБ ОЗУ. Помогли отключение профилирования памяти в ядре, THP, KFENCE, вырезание ненужных модулей ядра, замена systemd-resolved и timesyncd, настройка zram со zstd и тюнинг сборщика мусора Boehm. Приводится полный рабочий конфиг.
Отключение transparent_hugepage стало одним из самых больших выигрышей: при THP в режиме madvise ядро поднимает vm.min_free_kbytes до 41108, и это зарезервированная память, которую вы никогда не используете.
- KingMachiavelli
Очень хотелось бы, чтобы сборка минимальных, кастомных ядер была проще. NixOS делает это отчасти сносным, но всё равно это бардак из кастомного kconfig, хаков с defconfig target и ручного вырезания нужных прошивок и модулей ядра. В ядре даже нет интерфейса, чтобы показать, какие firmware-блобы были загружены. Можно включить проверку подписей прошивок, но, видимо, всем плевать, что какие-то случайные бинарные блобы крутятся только ради того, чтобы работала вебкамера ноутбука.
Было бы очень полезно, если бы я мог просто загрузить ядро и мгновенно получить отчёт о том, какая конфигурация ядра, прошивки и модули реально используются/нужны. Вроде бы можно сделать что-то подобное, но
- wrxd
Не по теме, но TierHive, похоже, делает отличную работу. У них можно взять VPS примерно за пару долларов в год.
Мощности будет немного (128 МБ ОЗУ, 1 ГБ диска), но если запустить Alpine или NetBSD, его можно использовать как WireGuard-пир, для хостинга небольшого сайта или для запуска пары cron-задач.
- yjftsjthsd-h
> Заблокировал в чёрном списке оборудование, которого у гостя KVM никогда не бывает или которое ему не нужно
Я немного удивлён, что это имеет значение; разве Linux не должен лениво загружать драйверы только тогда, когда видит оборудование?