
У меня есть пара HP BL460C, которые я тестирую, чтобы определить, какой процессор мы хотим использовать, когда начнем модернизировать наше оборудование, и на одном из них возникла проблема с этой переменной среды.
Blade работает под управлением Windows 7 Enterprise, а переменная NUMBER_OF_PROCESSORS сообщает о 14 процессорах, но на машине установлено два 14-ядерных процессора, поэтому мы должны увидеть вдвое большее число. Мне удалось проверить, что оба процессора установлены и обнаружены машиной через msinfo32 и диспетчер устройств.
Есть ли что-то, что может мешать генерированию переменной? Какой процесс Windows вообще использует для установки этого числа? Я знаю, что его можно редактировать, но он просто сбрасывается после перезагрузки, так что это не особо помогает. Любые ваши соображения были бы очень признательны.
Обновление: Решил переустановить машину на Windows 2008R2, чтобы посмотреть, изменится ли или исправится ли проблема, но она осталась. Так что технически несовместимая конфигурация, скорее всего, не является причиной.
решение1
Хорошо... ЯДействительноинтересно, почему вы хотите запустить Windows 7 на этих серверах вместо серверных редакций Windows. Можете ли вы дать больше подробностей о вашей среде?
Вы используетеHP ProLiant BL460c Gen9сервер с двумяоченьвысокого класса14-ядерные процессоры Intel E5-2697v3.
В то время как HP производилаблейд-серверы для рабочих станцийвплоть до линейки Gen8 ProLiant эквивалента Gen9 пока не существовало.
На данный момент я подозреваю несколько вещей:
Windows 7 Enterprise может поддерживать два сокета ЦП и 64 логических ядра, но вы видите только одно сокетное количество ЦП. Полагаю, вы ожидаете увидеть 28 ядер?
Полностью ли обновлена ваша система с точки зрения ОС? Если нет, пожалуйста, запустите все обновления ОС. Это новый процессор, выпущенный несколько недель назад на ОЧЕНЬ новой серверной платформе. Сомневаюсь, что вы найдете других людей с такой комбинацией ОС и оборудования прямо сейчас.
У вас установлена последняя версия прошивки? Если нет, обновите ее.
л.с.не намеревалсядля использования этой модели сервера с Windows 7, это уничтожит вашу возможность запускать агенты управления работоспособностью и драйверы с добавленной стоимостью на оборудовании.
Вы потенциально можете использоватьДрайверы/прошивки Windows 2008 R2для системы, но все это не поддерживается.
решение2
Насколько мне известно, $ENV:NUMBER_OF_PROCESSORS
он получен из WMI с использованием:Win32_ComputerSystem.NumberOfLogicalProcessors
Чтобы добавить путаницы, Win32_ComputerSystem
также сообщается количество физических процессоров как NumberOfProcessors
.
Для оценки этих значений можно использовать WMIC
PowerShell:
Get-WmiObject -Class Win32_ComputerSystem|Select NumberOf*
Если ваш компьютер отображается NumberOfProcessors
как 1, у вас может быть проблема с оборудованием или активацией лицензии, поскольку только выпуски Enterprise, Professional и Ultimate Windows 7 распознают более одного физического ЦП.
решение3
Windows 7 не является поддерживаемой операционной системой для работы на этом оборудовании., что для меня является достаточным объяснением того, почему он некорректно сообщает об установленном оборудовании. Другие причины в ответе МатиасаВ конечном итоге причиной может быть и это, но, в общем и целом, «неподдерживаемая конфигурация» — вполне подходящее объяснение для целей профессионального системного администрирования.
Что касается систем Windows, то на BL460C поддерживаются только ОС Windows Server 2003 и выше, как и на большинстве серверных устройств HP.
решение4
Джастин, я ранее опубликовал комментарий, но он не был воспринят как ответ, однако он привел меня к решению, поэтому я перепостил его ниже с примерами и решением, чтобы помочь вам понять логику моего сценария, и вы сможете оценить, совпадает ли он у вас.
Вечер Джастин Я вижу ту же проблему с HP proliant blade bl460c поколения 9 windows windows 2012 r2. поколение 8 сообщает обо всем правильно. Вы нашли решение? Мои выводы таковы: 'echo %NUMBER_OF_PROCESSORS%' возвращает неправильный \ непоследовательный ответ по сравнению с msinfo32, taskmanager и даже Get-WmiObject -Class Win32_ComputerSystem | fl Number*
Сообщенное число — 8, правильное число — 16.
Обсудив это с HP и Microsoft, можно сделать вывод, что это, по-видимому, связано с узлами NUMA и чередованием.
это было решено путем ввода bies и установки 'node interleaving' в положение disable. После этого переменная '%number_of_processors%' вернула то же количество процессоров, что и логические настройки taskmaster. Так что это решило проблему для меня.
Для получения дополнительной информации о настройках NUMA см.:http://msdn.microsoft.com/en-us/library/windows/desktop/aa363804(v=vs.85).aspx