Как генерируется переменная 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