cgroups и namespaces в Linux. Go в контейнерах.

Ответ

cgroups ограничивают ресурсы (CPU, память, I/O); namespaces изолируют видимость (PID, сеть, mount). Контейнер - процесс(ы) в своих namespaces с лимитами cgroups. Go-приложение в контейнере видит лимиты через /sys/fs/cgroup; GOMEMLIMIT можно выставить под cgroup memory limit. runtime.NumCPU() учитывает лимиты CPU; дефолтный размер стека горутины не зависит от cgroup.

// чтение лимита памяти cgroup для GOMEMLIMIT
// /sys/fs/cgroup/memory/memory.limit_in_bytes
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.