我试图使用戴尔Poweredge R900作为一个计算池我得到了二手(4x四核给我16核心运行模拟)。 它现在正在运行Windows Server 2008 R2企业。
我正在运行自定义.net代码,并可以指定线程的数量是我想要的任何东西。 通常(例如,在我的Windows 10 quadcore机器),一个线程轨道CPU核心10分钟左右。 如果我在我的服务器上启动7个线程(例如),我看到我的16个内核中的7个以20%的利用率点亮。 如果我启动16个线程,我看到所有16个核心在〜20%。 所以我试图烧掉48个线程,期望我的16个内核现在应该有3个线程,因此达到60%的利用率,但没有骰子。 我再次得到20%(每个线程明显慢了3倍,所以每个内核的所有3个线程得到处理)。 无论我发射多less线程,我的使用率都不会超过每核心20%。 现在,如果我以每个16+线程启动我的代码的两个实例,则所有内核都将达到40%。 三分之一,60%。 所以这不是FSB限制或任何东西。 有些东西必须将每个实例的内核压缩到每个核心20%。
我不能为了我的生活找出瓶颈在哪里。 这是一个Windows服务器的东西? 一个戴尔BIOS的东西? 我已经将操作系统从后台进程优化翻转到针对程序优化…似乎没有影响。 我是全新的Windows服务器,所以任何想法将不胜感激!
似乎Server 2008 R2有限制CPU利用率的方法。 我在这里find了它的信息,并build议您阅读它,也许尝试设置自己的极限:
https://technet.microsoft.com/en-us/library/ff384148(v=ws.10).aspx
另外,请注意,在上面的链接的评论部分,有2个关于这个问题的进一步解释的链接…