Powershell: узнайте, настроен ли NUMA и сколько процессоров назначено каждому узлу NUMA? - PullRequest
0 голосов
/ 12 января 2012

Используя Powershell, как я могу узнать, включен ли NUMA на моем сервере и сколько процессоров назначено каждому узлу NUMA?

Обновление:

Я обнаружил здесь что объект объекта microsoft.sqlserver.management.smo.server имеет поле affinityinfo.Однако это поле не существует в моем объекте сервера в Powershell при его создании (SQL Server 2005 в Windows XP).

Обновление:

Похоже, что поле affinityinfo существует только вSQL Server 2008 R2 и более поздние версии.

Ответы [ 2 ]

1 голос
/ 13 января 2012

Доступны API, которые будут получать эту информацию, но они неуправляемые, что означает, что их нелегко вызвать из PowerShell (.NET). Чтобы вызвать их напрямую, вы должны использовать командлет Add-Type для компиляции кода C # в сборку в памяти, которую вы затем создадите или вызовете статический метод. У меня есть пример того, как это выглядит в моем блоге.

Написание C # - сложная часть, потому что с ним связано множество недружелюбно выглядящих кодов, посмотрите пример . Если вы знакомы с C #, вы можете адаптировать это к тому, что вы хотите. Если нет, у Марка есть инструмент под названием Coreinfo , который выглядит так, как будто он даст вам информацию, которую вы ищете. Фактически он вызывает тот же неуправляемый API, что и связанный код p / invoke ( GetLogicalProcessorInformation ). Вы можете просто вызвать это из PowerShell и обработать его STDOUT.

0 голосов
/ 12 января 2012

Я не думаю, что нативные API-интерфейсы ОС в Windows 7 и Windows Server 2008 R2 для работы с более чем 64 логическими процессорами доступны в .NET, вы можете посмотреть .NET Поддержка более 64Процессоры .Этот парень использует для написания .NET-оболочки для OS API, вы, возможно, используете это в PowerShell.

...