【发布时间】:2015-03-13 23:53:34
【问题描述】:
在我的机器上,windows 7 - Enterprise with 1 x Intel Xeon E5-1660 0 @ 3.30Ghz(6 核/cpu 激活超线程),Environment.ProcessorCount 返回 12,这是准确的。
在具有 2 x Intel Xeon E5-2697 v3 @ 2.60GHz 的 Windows Server 2012 上(14 个内核/cpu 并激活了超线程(我认为是因为任务管理器显示:2 个插槽、28 个内核、56 个逻辑处理器)),环境.ProcessorCount 返回 28,这在我们看来是错误的,因为 2x14x2 = 56。
为什么在 Windows Server 2012 上 c# 方法 Environment.ProcessorCount 不返回正确数量的逻辑处理器?
作为附加信息,环境变量如下: NUMBER_OF_PROCESSORS=28
2015 年 5 月 26 日更新:
在我的另一个问题中有更多有关此相关错误的详细信息/原因:Unable to use more than one processor group for my threads in a C# app。主要是我认为 C# 确实只使用一个处理器组。奇怪的是,在我们的服务器上,虽然只有 56 个逻辑处理器,但有 2 个处理器组。但是这个HP CUSTOMER ADVISORY解释了为什么我们的服务器bios配置会导致windows错误。
【问题讨论】:
-
我很惊讶
Environment.PermissionAccess给了你任何 CPU 信息 :-) 我什至找不到它的文档。 -
对不起,我编辑了我的问题标题...我使用了错误的方法名称。对不起。感谢您的信息。
标签: c# cpu server core hyperthreading