Подбирайте GOMAXPROCS по доступному CPU и реальной нагрузке, проверяя throughput, tail latency, throttling и GC. Большее значение не всегда ускоряет сервис.
[имя] спросил: Как подобрать GOMAXPROCS и проверить, что его изменение действительно улучшает работу сервиса?
Подбирайте GOMAXPROCS по доступному CPU и реальной нагрузке, проверяя throughput, tail latency, throttling и GC. Большее значение не всегда ускоряет сервис.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Подбирайте GOMAXPROCS по доступному CPU и реальной нагрузке, проверяя throughput, tail latency, throttling и GC. Большее значение не всегда ускоряет сервис.
Учитывайте контейнерные CPU-лимиты и версию Go: современные версии могут адаптировать значение по окружению, а явная настройка меняет это поведение. Сравните несколько вариантов на одинаковом профиле нагрузки и наблюдайте не только среднее время. Слишком высокая параллельность при жёсткой квоте может ухудшить задержки; для I/O-работы число горутин не равно GOMAXPROCS.
Источник: go.dev.