限制Windows Server 2008 R2可用的处理器数量

时间:2013-04-09 13:59:46

标签: sql-server-2008-r2 windows-server-2008-r2 cpu-usage performance-testing

我正在设置测试环境,但我需要缩小我们用于运行Windows Server 2008 R2 SP 1和SQL 2008的SQL框的硬件。我注意到MSConfig .exe有限制可用CPU数量的选项,但我无法找到有关MSDN如何工作的任何文档。

我也没有看到任何方法使用Microsoft提供的BCDEdit通过命令行更改此内容。

有人知道这方面的文件吗?我试图决定在启动时限制处理器使用率是最好的测试,还是限制SQL本身的处理器。我倾向于启动时间,因为我正在尝试准确模拟低功耗物理盒,如果我限制数据库级别的功率,额外的功率可能会显示在其他区域。

1 个答案:

答案 0 :(得分:4)

在一个多核,超线程CPU的时代,“处理器”现在是一个含糊不清的术语。处理器是指线程(来自超线程),内核还是套接字(物理CPU)。

Windows将逻辑处理器(LP)识别为基本计算平台 - 为核心内的每个超线程提供一个LP,然后为每个核心相乘,最后乘以套接字数量。

Windows中减少LP计数的最简单方法是使用/ NUMPROC选项。在此示例中,itc创建的最大处理器数为8。

  
      
  1. 备份bcdedit / export c:\ Backup \ bcd.bak
  2.   
  3. 当前条目列表bcdedit / v
  4.   
  5. 现有配置的复制bcdedit / copy {current} / d“Windows 2008 R2 with NumProc”               电流是“众所周知的”标识符。这也会返回创建的Id。所以可以直接使用
  6.   
  7. 条目清单bcdedit / v
  8.   
  9. 向新条目添加参数设置最大处理器数量
      bcdedit / set {new_ID} NUMPROC 8
  10.   
  11. 更改默认条目bcdedit / default {new_ID}
  12.   

但是这种策略的危险是例如在启用了超线程的4核系统上,然后只使用一个处理器(插槽)。由于前8个LP(0..7)将是第一个处理器上的超线程核心。所以你并没有真正模仿8路系统 - 而是1路 - 4核心系统,启用了超线程。

如果这不适合您的型号,则其他选项

  • 在BIOS中禁用超线程 - 这会减少每个核心的LP数量,从而有助于在核心和套接字上分配负载。
  • 系统BIOS是否支持减少每个处理器的核心计数器?如果是这样,这将有助于通过套接字分配负载。
  • 在虚拟环境中构建系统并从该角度限制物理资源。

如果您在Windows下处理超过64个逻辑处理器,则会引入处理器组并添加另一层选项。