2

我正在建立一个测试环境,但我需要缩减硬件我们使用我们的SQL中,这是运行Windows Server 2008 R2 SP 1和SQL 2008.我注意到MSConfig.exe有限制可用CPU数量的选项,但我无法找到有关MSDN上的工作原理的任何文档。限制可用处理器的数量到Windows Server 2008 R2

我还没有看到任何方式通过命令行来改变这种使用的BCDEdit微软插嘴说。

任何人都知道文档的说明吗?我试图决定在启动时限制处理器使用率是最好的测试,还是限制SQL本身的处理器。我倾向于开机时间,因为我试图准确地模拟较低功率的物理盒子,并且如果我在数据库级别限制电源,额外的电源可能会出现在其他区域。

回答

3

在多核,超线程CPU的时代,“处理器”现在是一个含糊的字眼。处理器是否参考了线程(来自超线程),内核或套接字(物理CPU)。

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

在Windows最简单的方式,以减少LP数量是使用/ NUMPROC选项。在这个例子中,ITC创建8.

  1. 备份BCDEDIT /出口的C处理器的最大数量:\备份\ bcd.bak当前条目的
  2. 列表BCDEDIT/v的
  3. 复制现有的配置的bcdedit/copy {current}/d“带有NumProc的Windows 2008 R2” 当前是一个“众所周知的”标识符。这也会返回创建的Id。这样可以直接使用的条目BCDEDIT/V
  4. 添加参数来新条目设置处理器
    BCDEDIT /套{NEW_ID} NUMPROC 8
  5. 更改默认项BCDEDIT /默认{的最大数量的
  6. 名单NEW_ID }

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

如果这不适合您的机型其他选项

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

如果你在Windows下处理超过64个逻辑处理器则是引入了处理器组和添加的选项另一层。

+0

这有助于,谢谢。我知道我的32个LP中有16个是超线程的结果,所以我必须在通过引导选项进一步限制LP的数量之前,通过BIOS禁用超线程。这样我实际上模仿我想要的内核数量,而不是简单地删除线程。 – 2013-04-23 17:25:15