Как генерируется переменная env NUMBER_OF_PROCESSORS?

У меня есть пара HP BL460C, которые тестируются, чтобы определить, какой процессор мы хотим использовать, когда мы начинаем модернизацию нашего оборудования, и есть проблема с этой переменной среды на одном из них.

Блейд-сервер работает под управлением Windows 7 Enterprise, а переменная NUMBER_OF_PROCESSORS сообщает о 14 процессорах, но на машине установлено два 14-ядерных процессора, поэтому мы должны увидеть удвоение этого числа. Мне удалось проверить, что оба процессора установлены и обнаружены машиной через msinfo32 и диспетчер устройств.

Есть ли что-то, что может повлиять на то, как генерируется переменная? Какой процесс Windows использует для установки этого числа? Я знаю, что его можно отредактировать, но он просто сбрасывается после перезагрузки, так что это не очень помогает. Любое понимание, которое вы, ребята, имеете, было бы очень цениться.

Обновление: решил перестроить машину под Windows 2008R2, чтобы посмотреть, изменит ли она или исправит проблему, но проблема не исчезла. Таким образом, технически несовместимая конфигурация, скорее всего, не является причиной.

4 ответа

Решение

Хорошо... Мне действительно любопытно, почему вы хотите запускать Windows 7 на этих серверах вместо выпусков Windows Server. Можете ли вы дать более подробную информацию о вашей среде?

Вы используете сервер HP ProLiant BL460c Gen9 с двумя 14-ядерными процессорами Intel E5-2697v3 очень высокого класса.

Хотя HP производила блейд-серверы для рабочих станций вплоть до линейки Gen8 ProLiant, аналога Gen9 пока нет.

На данный момент, я подозреваю несколько вещей:

  • Windows 7 Enterprise может поддерживать два сокета ЦП и 64 логических ядра, но вы видите ЦП только одного сокета. Я полагаю, вы ожидаете увидеть 28 ядер?

  • Ваша система полностью обновлена ​​с точки зрения ОС? Если нет, пожалуйста, запустите все обновления ОС. Это новый процессор, выпущенный несколько недель назад на ОЧЕНЬ новой серверной платформе. Я сомневаюсь, что вы найдете других людей с этой комбинацией ОС и оборудования прямо сейчас.

  • Вы в курсе системных прошивок? Если нет, обновите его.

  • Компания HP не намеревалась использовать эту модель сервера с Windows 7, поэтому это может лишить вас возможности запускать агенты управления работоспособностью и драйверы с добавленной стоимостью на оборудовании.

  • Вы можете использовать драйверы / прошивки Windows 2008 R2 для системы, но все это не поддерживается.

Насколько я знаю, $ENV:NUMBER_OF_PROCESSORS получается из WMI, используя: Win32_ComputerSystem.NumberOfLogicalProcessors

Чтобы добавить к путанице, Win32_ComputerSystem также сообщает количество физических процессоров как NumberOfProcessors,

Ты можешь использовать WMIC или PowerShell для оценки этих значений:

Get-WmiObject -Class Win32_ComputerSystem|Select NumberOf*

Если ваша машина показывает NumberOfProcessors как 1, у вас может возникнуть проблема с оборудованием или проблема с активацией лицензии, поскольку только выпуски Windows 7 Enterprise, Professional и Ultimate распознают более одного физического ЦП.

Windows 7 не является поддерживаемой операционной системой для запуска на этом оборудовании, что является для меня достаточно хорошим объяснением того, почему она не правильно сообщает о вашем установленном оборудовании. Другие причины в ответе Матиаса также могут быть причиной, но в целом "неподдерживаемая конфигурация" является достаточно хорошим объяснением для целей профессионального системного администрирования.

Что касается систем Windows, то на BL460C поддерживаются только ОС Windows Server 2003 и выше, а в большинстве случаев и на большинстве серверного оборудования HP.

Джастин, я разместил комментарий ранее, но он не был воспринят как ответ - однако он действительно привел к решению для меня, поэтому я разместил ниже информацию о работе и решении, чтобы помочь вам понять логику для моего сценария, и тогда вы сможете суди если у тебя такой же.

Вечером Джастина я вижу такую ​​же проблему с пролонитированным лезвием HP bl460c поколения 9 windows windows 2012 r2 . поколение 8 сообщило все правильно. Вы нашли решение. Мои выводы: "echo %NUMBER_OF_PROCESSORS%" возвращает неправильный \ противоречивый ответ по сравнению с msinfo32, диспетчером задач и даже Get-WmiObject -Class Win32_ComputerSystem | номер fl *

Сообщаемое число 8, правильное число 16.

Обсуждения с HP и Microsoft, по-видимому, связаны с NUMA-узлами и чередованием.

это было решено введением bies и установкой 'interleaving node' на отключено. после этого переменная "%number_of_processors%" вернула то же количество процессоров, что и настройки логического мастера задач. Так что это решило проблему для меня.

Для получения дополнительной информации о настройках NUMA см. http://msdn.microsoft.com/en-us/library/windows/desktop/aa363804(v=vs.85).aspx

Другие вопросы по тегам