Назад | Перейти на главную страницу

Как создается переменная env (NUMBER_OF_PROCESSORS)?

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

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

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

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

Насколько я знаю, $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 распознают более одного физического процессора

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

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

Пока HP производила блейд-серверы для конкретных рабочих станций до линейки Gen8 ProLiant еще не существовало эквивалента Gen9.

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

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

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

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

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

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

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

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

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

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

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

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

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

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