Имеет ли. NET Core ограничение в 64 ВЦП? - PullRequest
1 голос
/ 09 апреля 2020

У меня есть. NET Базовое приложение, которое запускает 512 задач, которые заполняют сеть ИИ. Я выполняю тесты масштабирования и запускаю тесты на 2, 4, 8, 16, 32 и 64 процессорных машинах в Azure. Все тесты производительности используют 100% доступных vCPU на компьютере.

Когда я попытался запустить тест на M128 (128 vCPU), тест выполнялся с 50% загрузкой ЦП. Я проверил переменные окружения и Environment.ProcessorCount сказал мне, что всего 64 процессора (в документации сказано, что это количество виртуальных процессоров). Продолжая изучение, я обнаружил, что архитектурный предел составляет 64 ЦП на «Группу процессоров». Эта машина, очевидно, имеет 2 группы процессоров по 64 в каждой.

Это ошибка в. NET Core или. NET Ядро ограничено только одной группой процессоров?

1 Ответ

1 голос
/ 09 апреля 2020

В документации для Environment.ProcessorCount указано

Если текущий компьютер содержит несколько групп процессоров, это свойство возвращает число логических процессоров, доступных для использования общим Language Runtime (CLR).

Я думаю, вам может потребоваться запустить несколько процессов (и, следовательно, несколько экземпляров CLR), чтобы воспользоваться преимуществами второй группы.

...