Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эта статья помогает устранить проблему, в которой %NUMBER_OF_PROCESSORS%
переменная среды может отображать неправильные значения в системах с более чем 64 логическими процессорами.
У вас есть 64-разрядная система Windows с более чем 64 логическими процессорами. При проверке переменной среды вы найдете неправильное %NUMBER_OF_PROCESSORS%
значение и меньше общего количества процессоров в системе. Например, система с 72 логическими процессорами имеет две группы процессоров, и каждая группа содержит 36 логических процессоров. Значение %NUMBER_OF_PROCESSORS%
равно 36, но, как ожидается, будет 72.
Поддержка систем с более чем 64 логическими процессорами
Логический процессор — это логический вычислительный модуль с точки зрения операционной системы, приложения или драйвера. Поддержка систем с более чем 64 логическими процессорами была добавлена в Windows 7 на основе создания групп процессоров.
Группа процессоров — это набор до 64 логических процессоров, которые рассматриваются как единая сущность планирования операционной системой, и каждый процесс назначается только одной группе процессоров по умолчанию.
Учитывается только текущая группа обработчиков
Переменная %NUMBER_OF_PROCESSORS%
среды отражает количество процессоров в назначенной группе процессоров для процесса и наследуется от диспетчера сеансов Windows (smss.exe). До Windows 11 и Windows Server 2022 smss.exe не знала о группе обработчиков. Поведение планировщика по умолчанию — назначение приложений одной группе процессоров. В этом случае учитывается только текущая группа обработчиков.
Только системный процесс назначается многогрупповое сходство при запуске системы. Чтобы использовать полный набор процессоров в системе, все остальные процессы должны назначать потоки другой группе.
Если приложению требуется запускать более 64 процессоров с помощью нескольких групп, необходимо определить, где выполнять потоки. Приложение отвечает за настройку сопоставлений потоков с нужными группами.
Обновление системы до Windows 11 или Windows Server 2022
Вы можете обновить систему до Windows 11 или Windows Server 2022. Начиная с Windows 11 и Windows Server 2022 на компьютерах с более чем 64 процессорами, процессы и их потоки охватывают все процессоры в системе по нескольким группам по умолчанию. Кроме того, начиная с Windows 11 версии 22H2 %NUMBER_OF_PROCESSORS%
переменная среды отражает общее количество процессоров в системе, даже если они распределяются по нескольким группам процессоров.
Задание сопоставлений потоков приложения с нужными группами
Если ваша операционная система до Windows 11 или Windows Server 2022, можно задать сходство потоков приложения с нужными группами.
Вы можете указать сходство потока при его создании с помощью расширенного атрибута PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY с функцией CreateRemoteThreadEx . После создания потока можно изменить его сходство, вызвав функцию SetThreadAffinityMask или SetThreadGroupAffinity .