NUMBER_OF_PROCESSORSvariables是如何生成的?

我有几台HP BL460C正在testing,以确定我们开始升级设备时要使用哪个处理器,而其中一台环境variables存在问题。

该刀片正在运行Windows 7 Enterprise,而NUMBER_OF_PROCESSORSvariables报告了14个处理器,但机器中安装了两个14核心处理器,所以我们应该看到这个数字的两倍。 我能够通过msinfo32和设备pipe理器validation两台处理器是否已安装并由机器检测到。

有没有什么东西可能会混淆variables的生成? Windows甚至用什么过程来设置这个数字? 我知道它可以被编辑,但它重新启动后重置,所以这并没有真正的帮助。 任何你有见识的人将非常感激。

更新:决定重build机器为Windows 2008R2,以查看它是否会改变或解决问题,但它仍然存在。 所以,技术上不兼容的configuration可能不是原因。

好的…我真的好奇你为什么要在这些服务器上运行Windows 7而不是Windows服务器版本。 你能给你的环境更具体吗?

您正在使用带有两个非常高端的Intel E5-2697v3 14核CPU的HP ProLiant BL460c Gen9服务器。

虽然惠普制造的工作站专用刀片服务器直到Gen8 ProLiant产品线,但还没有Gen9的产品。

在这一点上,我怀疑一些事情:

  • Windows 7企业版可以支持两个CPU插槽和64个逻辑核心,但是只能看到一个插槽的CPU价值。 我想你期待看到28核心?

  • 您的系统是否从操作系统的angular度完全更新? 如果没有,请运行所有操作系统更新。 这是几个星期前在一个非常新的服务器平台上发布的新CPU。 我怀疑你现在会发现有这种操作系统和硬件组合的其他人。

  • 你是最新的系统固件? 如果没有,更新它。

  • 惠普并不打算将此服务器型号与Windows 7结合使用, 否则将无法在硬件上运行运行状况pipe理代理和增值驱动程序。

  • 您可以使用Windows 2008 R2驱动程序/固件作为系统,但是它们都不受支持。

据我所知, $ENV:NUMBER_OF_PROCESSORS是从WMI派生的,使用: Win32_ComputerSystem.NumberOfLogicalProcessors

为了增加混淆, Win32_ComputerSystem还将NumberOfProcessors的物理CPU NumberOfProcessors

您可以使用WMIC或PowerShell来评估这些值:

 Get-WmiObject -Class Win32_ComputerSystem|Select NumberOf* 

如果您的计算机显示NumberOfProcessors为1,则可能会出现硬件问题或许可证激活问题,因为只有Windows 7的Enterprise,Professional和Ultimate版本才能识别多个物理CPU

Windows 7不是在该硬件上运行的受支持的操作系统 ,这对于我为什么不正确地报告已安装的硬件是一个足够好的解释。 Mathias的答案中的其他原因可能最终也是原因,但总的来说,“不支持的configuration”对于专业系统pipe理目的来说是足够好的解释。

就Windows系统而言,BL460C以及大多数HP服务器硬件仅支持Windows Server 2003和更高版本。

贾斯汀,我之前发表了一个评论,但没有被视为答案 – 但是它确实为我自己提供了解决scheme,所以我已经在下面转载了工作原理和解决scheme,以帮助您了解我的scheme的逻辑,然后您就可以判断你是否有相同的一个。

晚上贾斯汀我看到惠普公司生产的刀片BL460C第9代Windows窗口2012 R2 R2相同的问题。 第八代人正确地报道了一切。 你find一个解决scheme吗? 与msinfo32,taskmanager,甚至Get-WmiObject类相比,我的发现是'echo%NUMBER_OF_PROCESSORS%'返回不正确的\不一致的响应类Win32_ComputerSystem | fl号码*

报告的数字是8,正确的数字是16。

与惠普和微软讨论过,这似乎是由于NUMA节点和交错。

通过inputbies并将“节点交叉”设置为禁用来解决。 在此之后,'%number_of_processors%'variables返回与逻辑taskmaster设置相同数量的处理器。 所以这为我解决了这个问题。

有关NUMA设置的更多信息,请参阅: http : //msdn.microsoft.com/en-us/library/windows/desktop/aa363804( v=vs.85) .aspx