在每个节点上运行的相同 C# 可执行文件具有不同的行为:
- HP:仅在一个节点(一个处理器组)上运行(两个中的任意一个)。问题:它应该在每个节点上运行。
- IBM:在所有节点上运行(每个处理器组)
两台机器都运行 Windows Server 2012 R2 并且有 2 个以上的 CPU。
HP - 2x Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.60GHz, 2597 Mhz, 14 核, 28 逻辑处理器 IBM - 4x Intel(R) Xeon(R) CPU E7- 4870 @ 2.40GHz, 2395 Mhz, 10 核, 20 逻辑
我尝试回答我自己的问题堆栈溢出。所有详细信息可在此链接中查看。
在我看来,这似乎指向 HP 服务器上的驱动程序有故障或者 BIOS 或 Windows 中的配置有问题。
知道这究竟是什么原因造成的吗?
HP MsInfo32 转储:
OS Name Microsoft Windows Server 2012 R2 Standard
Version 6.3.9600 Build 9600
Other OS Description Not Available
OS Manufacturer Microsoft Corporation
System Name EMTP6
System Manufacturer HP
System Model ProLiant DL360 Gen9
System Type x64-based PC
System SKU 755258-B21
Processor Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.60GHz, 2597 Mhz, 14 Core(s), 28 Logical Processor(s)
Processor Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.60GHz, 2597 Mhz, 14 Core(s), 28 Logical Processor(s)
BIOS Version/Date HP P89, 7/11/2014
SMBIOS Version 2.8
Embedded Controller Version 2.02
BIOS Mode UEFI
Platform Role Enterprise Server
Secure Boot State Off
PCR7 Configuration Not Available
Windows Directory ---removed
System Directory ---removed
Boot Device \Device\HarddiskVolume2
Locale United States
Hardware Abstraction Layer Version = "6.3.9600.17196"
User Name Not Available
Time Zone Eastern Standard Time
Installed Physical Memory (RAM) 256 GB
Total Physical Memory 256 GB
Available Physical Memory 246 GB
Total Virtual Memory 294 GB
Available Virtual Memory 283 GB
Page File Space 38.0 GB
Page File ---removed
Hyper-V - VM Monitor Mode Extensions Yes
Hyper-V - Second Level Address Translation Extensions Yes
Hyper-V - Virtualization Enabled in Firmware Yes
Hyper-V - Data Execution Protection Yes
IBM MsInfo32 转储:
OS Name Microsoft Windows Server 2012 R2 Standard
Version 6.3.9600 Build 9600
Other OS Description Not Available
OS Manufacturer Microsoft Corporation
System Manufacturer IBM
System Model System x3850 X5
System Type x64-based PC
System SKU
Processor Intel(R) Xeon(R) CPU E7- 4870 @ 2.40GHz, 2395 Mhz, 10 Core(s), 20 Logical Processor(s)
Processor Intel(R) Xeon(R) CPU E7- 4870 @ 2.40GHz, 2395 Mhz, 10 Core(s), 20 Logical Processor(s)
Processor Intel(R) Xeon(R) CPU E7- 4870 @ 2.40GHz, 2395 Mhz, 10 Core(s), 20 Logical Processor(s)
Processor Intel(R) Xeon(R) CPU E7- 4870 @ 2.40GHz, 2395 Mhz, 10 Core(s), 20 Logical Processor(s)
BIOS Version/Date IBM Corp. -[G0E179BUS-1.79]-, 28-07-2013
SMBIOS Version 2.7
Embedded Controller Version 255.255
BIOS Mode UEFI
BaseBoard Manufacturer IBM
BaseBoard Model Not Available
BaseBoard Name Base Board
Platform Role Enterprise Server
Secure Boot State Unsupported
PCR7 Configuration Not Available
Hardware Abstraction Layer Version = "6.3.9600.17031"
User Name Not Available
Time Zone Romance Standard Time
Installed Physical Memory (RAM) 128 GB
Total Physical Memory 128 GB
Available Physical Memory 53,0 GB
Total Virtual Memory 147 GB
Available Virtual Memory 67,7 GB
Hyper-V - VM Monitor Mode Extensions Yes
Hyper-V - Second Level Address Translation Extensions Yes
Hyper-V - Virtualization Enabled in Firmware Yes
Hyper-V - Data Execution Protection Yes
答案1
该错误已由新版本(部分)修复尚未发布的 HP Bios(撰写本文时)。
新的 Bios(针对 HP Proliant DL360 和 DL380 Gen9)引入了一个新设置:“NUMA 组大小优化”,可选择 [Clustered - default] 或 [Flat]。HP 建议将其设置为 flat。
据我所知,操作系统与 BIOS 通信以了解 CPU 配置。BIOS 在操作系统如何向应用程序呈现可用的逻辑处理器(处理器组、关联性等)方面发挥着重要作用。
我认为这个错误只修复了部分问题。原因如下:
- 只有一个处理器组,我认为每个 Numa 节点最好有一个处理器组。
- 此外,每个逻辑处理器运行一个繁忙线程(100% 的工作时间),使所有(所有节点的)逻辑处理器的繁忙程度仅为 ~40%。我预计使用率为 100%。
- 我强烈希望 HP 能发布另一个 BIOS 来纠正这种情况(要么只有一个组,要么使用率约为 40%)。