tgoop.com/golang_interview/1293
Last Update:
В релизе Go 1.25 представлена важная улучшенная логика работы GOMAXPROCS
в контейнеризованных средах — например, в Kubernetes.
Как это работает:
- Раньше по умолчанию GOMAXPROCS
устанавливался равным числу логических CPU на хосте.
- Теперь на Linux runtime автоматически учитывает CPU limits, заданные для контейнера. Если лимит меньше числа логических ядер — GOMAXPROCS
устаналивается на уровне лимита.
- Более того, runtime периодически обновляет GOMAXPROCS
, если меняются доступные CPU или ограничения, без необходимости внешнего вмешательства.
Почему это важно:
Ранее разработчикам приходилось использовать внешние решения вроде uber-go/automaxprocs
, чтобы вручную синхронизировать GOMAXPROCS
с лимитами контейнера. Теперь runtime делает это автоматически и точнее:
- Внутри контейнера Go не будет пытаться использовать все ядра хоста
- Уменьшаются лишние горутины, контекстные переключения и нагрузка на GC
Кратко: начиная с Go 1.25, GOMAXPROCS
адаптируется под реальные CPU-ресурсы контейнера — без дополнительных усилий.
📌 Подробности
@golang_google
#golang #Kubernetes