Sobes.tech
Назад к вопросам
Middle+
6

Сколько потоков запустит планировщик Go? И конкретно на AMD EPYC с 64 ядрами и 128 потоками?

Компании, где спрашивали
МВидеоМВидео

Ответ от нейросети

sobes.tech AI

Планировщик Go запускает количество потоков, равное значению переменной окружения или параметра GOMAXPROCS, которая по умолчанию устанавливается равной количеству логических процессоров (CPU threads) на машине.

На системе с AMD EPYC, имеющей 64 физических ядра и 128 потоков (гиперпоточность), по умолчанию GOMAXPROCS будет равен 128, то есть планировщик Go запустит 128 потоков ОС для выполнения горутин.

Это означает, что одновременно может выполняться до 128 горутин на уровне ОС, что позволяет эффективно использовать все логические процессоры. При необходимости GOMAXPROCS можно изменить программно через runtime.GOMAXPROCS(n) или через переменную окружения GOMAXPROCS.

Пример установки в коде:

import "runtime"

func main() {
    runtime.GOMAXPROCS(128) // явно установить число потоков
    // ...
}