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

Sql server 2008 r2 限制Windows Server 2008 R2可用的处理器数量,sql-server-2008-r2,windows-server-2008-r2,cpu-usage,performance-testing,Sql Server 2008 R2,Windows Server 2008 R2,Cpu Usage,Performance Testing,我正在设置一个测试环境,但我需要缩小SQL box使用的硬件规模,它运行的是Windows Server 2008 R2 SP 1和SQL 2008。我注意到MSConfig.exe有限制可用CPU数量的选项,但我找不到任何关于如何在MSDN上工作的文档 我也没有看到任何方法可以通过命令行使用微软提供的BCDEdit来改变这一点 有人知道这方面的文件吗?我正试图决定是在启动时限制处理器的使用是最好的测试,还是在SQL本身中限制处理器。我倾向于引导时间,因为我试图准确地模拟低功耗的物理机箱,如果我

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

我也没有看到任何方法可以通过命令行使用微软提供的BCDEdit来改变这一点


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

在多核、超线程CPU的时代,“处理器”现在是一个模棱两可的术语。处理器是否引用线程(来自超线程)、内核或套接字(物理CPU)

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

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

  • 备份bcdedit/export c:\Backup\bcd.bak
  • 当前条目列表bcdedit/v
  • 现有配置bcdedit/Copy{current}/d“Windows 2008 R2 with NumProc”的副本 当前是一个“众所周知”的标识符。这还会返回创建的Id。这样就可以直接使用了
  • 条目列表bcdedit/v
  • 将参数添加到新条目以设置最大处理器数
    bcdedit/set{new_ID}NUMPROC 8
  • 更改默认条目bcdedit/default{new_ID}
  • 但这种策略的危险在于,例如,在启用超线程的4核系统上,仅使用一个处理器(套接字)。因为前8个LPs(0..7)将在第一个处理器上被超线程化。因此,您实际上不是在模拟8路系统,而是一个启用了超线程的1路4核心系统

    如果这不适合您的模型,其他选项包括

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

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

    在多核、超线程CPU的时代,“处理器”现在是一个模棱两可的术语。处理器是否引用线程(来自超线程)、内核或套接字(物理CPU)

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

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

  • 备份bcdedit/export c:\Backup\bcd.bak
  • 当前条目列表bcdedit/v
  • 现有配置bcdedit/Copy{current}/d“Windows 2008 R2 with NumProc”的副本 当前是一个“众所周知”的标识符。这还会返回创建的Id。这样就可以直接使用了
  • 条目列表bcdedit/v
  • 将参数添加到新条目以设置最大处理器数
    bcdedit/set{new_ID}NUMPROC 8
  • 更改默认条目bcdedit/default{new_ID}
  • 但这种策略的危险在于,例如,在启用超线程的4核系统上,仅使用一个处理器(套接字)。因为前8个LPs(0..7)将在第一个处理器上被超线程化。因此,您实际上不是在模拟8路系统,而是一个启用了超线程的1路4核心系统

    如果这不适合您的模型,其他选项包括

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

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

    这很有帮助,谢谢。我知道我的32个LP中有16个是超读的结果,因此我必须先通过BIOS禁用超读,然后再通过启动选项进一步限制LP的数量。通过这种方式,我实际上是在模仿我想要的内核数量,而不是简单地删除线程。这是我见过的在Windows上禁用LPs的最好答案。实际上,我想这样做是为了在没有禁用HT的BIOS选项的旧PC上减轻侧通道的CPU漏洞,但在Windows系统范围内没有禁用HT的好方法。但是,如果您的CPU具有2核4线程,那么将
    NUMPROC
    设置为3(也可以通过msconfig完成)可能是安全性和性能之间可以接受的折衷方案,如果安全性对您非常重要,则设置为1。这会有所帮助,谢谢。我知道我的32个LP中有16个是超读的结果,因此我必须先通过BIOS禁用超读,然后再通过启动选项进一步限制LP的数量。这样的话,我实际上是在模仿我想要的内核数量,而不是简单的remo