本文主要向大家介绍了SQLServer数据库之SQLSERVER能识别多少个逻辑CPU,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助。

在论坛有人遇到SQLSERVER识别逻辑CPU的问题

环境

LZ当时的环境是这样的:

操作系统:Windows Server 2008 R2 企业版 SP1

高可用配置:群集

数据库:SQLSERVER 2005 企业版 64位  SP4

服务器硬件配置:

CPU:HP DL980 G7 4*10核心 2.00 G主频  有超线程功能

内存:256GB

SQLSERVER的情况

LZ当时描述说:他当时开启了超线程

操作系统能识别得到80个逻辑CPU(在任务管理器里看)

如果操作系统能识别80个逻辑CPU表明:

4颗10核2.00处理器 ,每核心双线程(4*10*2=80),也就是80个逻辑处理器(每个线程代表一个逻辑CPU)

或者

4颗10核2.00处理器 ,每核心一个线程,但是使用了超线程技术之后变为每核心双线程(4*10*2=80),

也就是80个逻辑处理器(每个线程代表一个逻辑CPU)

LZ说:在sql server 2005中数据库属性处理器一项中只能识别cpu0-cpu59,并且群集切换后,另一台接管资源节点只能识别到20颗逻辑处理器。

只能识别到60个逻辑CPU

论坛说法

而在帖子中两位仁兄都给出了各自的说法:

说法一:

当你在同一个集群上有多个SQLSERVER实例,最好把这些处理器划分开,供给多个实例使用。对于任何一个SQLSERVER实例

不能使用“自动设置所有处理器关联掩码”

rmiao的意思是说,不能勾选“自动设置所有处理器的处理器关联掩码”,以防止集群的某一个实例将所有逻辑CPU资源都用尽了

说法二:

按照MSDN的说法,SQLSERVER2005企业版是支持操作系统最大处理器数目的

对于这个情况,怡红公子给出了下面内容的链接:

64位的Windows7和Windows Server2008 R2为了能够在一台机器上,支持超过64个逻辑CPU ,引入了Process Group的概念

他会把一些逻辑CPU编成一个组,但是一个组内的逻辑CPU总数不能超过64个,否则将编入另外一个组

而且,分配逻辑CPU的工作也不一定是平均的。操作系统会在重启的时候,根据逻辑CPU之间的物理远近,自动进行编组。

例如,重启后可能变成20或者60核。

由于Process Group这个概念是在Windows2008才引入的。当开发SQLSERVER2008的时候, 并没有做相应的变化,

所以SQLSERVER2008是无法支持这个功能的。升级到SQLSERVER2008 R2就可以解决这个问题。

他最多可以同时检测到256个逻辑CPU。

如果不能升级到SQLSERVER2008 R2的话,可以人工干预Process Group的编组, 把第一个Process Group设置为64核,

以尽可能多的利用CPU,不过操作系统必须是64位Windows2008R2或64位Windows7或以上操作系统才能手工设置

翻译

我翻译了一下如何设置Process Group编组这篇文章

标题:如何在多处理器机器上手工设置处理器编组

概述

处理器编组的手动设置分配是在64位操作系统Windows Server 2008 R2开始的,并且应用在

超过64个逻辑CPU的NUMA(非统一内存架构)架构系统上。处理器编组设置允许

administrator系统管理员为处理器编组指定一个静态的NUMA节点,这样比让Windows在开机启动的时候动态

分配NUMA节点给处理器编组要好

注意:OEM厂商可以在OEM系统出厂之前为系统配置最优化的处理器编组

更多信息

在以前缺少手工设置处理器编组的时候,Windows以最小的编组的方式分配NUMA节点到编组里面。

Windows以自身的经验评估从之前启动时最小节点距离去分配每个处理器编组之间内部的节点距离。

administrator系统管理员可以使用以下两个方法的其中一个去重置自动编组分配:

第一个使用BCDEdit

第二个使用修改注册表

注意:Windows Server2008R2 使用下面的重置优先级:

手工修改注册表的优先级大于重置BCDEdit设置;然后,BCDEdit设置会覆盖操作系统的自动编组分配

也就是说优先级依次是:手工修改注册表>BCDEdit设置>操作系统的自动编组分配

使用 BCDEdit去配置编组分配

administrator系统管理员能够利用BCDEdit去覆盖掉默认编组分配,BCDEdit允许改变编组的大小和最大编组。

这个设置方法你可以在MSDN里的“修改操作系统启动参数去驱动测试多处理器编组支持”文章找到

相关命令:

1 --设置最大编组大小

2 bcdedit.exe /set groupsize maxsize

3 --设置一个编组内只能有2个逻辑处理器

4 bcdedit.exe /set groupsize 2

5 --还原为默认的编组大小

6  bcdedit.exe /deletevalue groupsize

7 --开启最大化编组大小

8 bcdedit.exe /set maxgroup on

9 --关闭最大化编组大小

10 bcdedit.exe /set maxgroup off

11

12 bcdedit.exe /set groupaware on

13 bcdedit.exe /set groupaware off

使用手工修改注册表去配置处理器编组

第二个手工配置处理器编组的方法就是通过根据特定系统的首选NUMA特征去添加注册表参数

1 Key:  HKLM\System\CurrentControlSet\Control\NUMA

2

3 Value: “Group Assignment”

4

5 Type:  REG_BINARY

在注册表的HKLM\System\CurrentControlSet\Control位置添加新建NUMA项目

在NUMA项目里新建二进制值Group Assignment

而内容为:

Proximity Domain Count (N)

Proximity ID of domain 0

Group assignment for domain 0

Proximity ID of domain 1

Group assignment for domain 1   ...

Proximity ID of domain N-1

Group assignment for domain N-1

内容里的值是一系列的ULONG数据类型的值(4字节 unsigned 整型)

Boot System Processor (BSP) :一个系统中有多个逻辑CPU的时候,当操作系统启动的时候只会

利用到一个逻辑CPU 其他的逻辑CPU在操作系统启动的时候是不活动的,这个逻辑CPU称为Boot System Processor (BSP)

重要:确保分配亲近的域包含BSP到组0。Windows确保BSP有组掩码(组0,号码0)

场景

例如,考虑下面的场景, 一个机器有80个逻辑处理器平均分配到4个NUMA节点当中, 电脑的BIOS资源掩码表(SRAT)

定义了NUMA节点与ID亲近:0x11, 0x12, 0x13, 0x14. 用于系统启动的那个逻辑CPU(BSP)与域 0x11亲近

下面是两个描述了如何去手动分配节点的场景 例子1:

你希望分配节点0x11 和 0x12 到编组0, 然后 节点0x13 和 0x14 到编组 1.

准备下面的表:

注意:你必须分配亲近域 ID 0x11 到编组0 因为域 ID 0x11 包含了 BSP.

根据上面这个表去配置注册表,从最右面的列(Value as ULONG)连接所有的4字节ULONG类型值到一个单一的long类型二进制制。

运行下面的脚本 ,将他保存为bat文件,然后双击运行

1 reg.exe add HKLM\System\CurrentControlSet\Control\NUMA /v "Group Assignment" /t REG_BINARY /f /d "040000001100000000000000120000000000000013000000010000001400000001000000"

导入成功

例子2: 你希望配置节点0x11 和 0x12 到编组 0, 节点 0x13 到编组 1, 然后节点 0x14 到编组 2.

例子2跟例子1是差不多的,这里就不翻译了

重启电脑配置就会生效。如果配置不正确(数据内容长度错误,亲近IDs不对,或者定义了不合法的编组),手工编组分配就会被忽略,

启动机器时不会按照编组分配定义那样去分配编组

完成了手工编组分配之后,重启计算机,有两种方法验证目标机器的NUMA配置编组分配是否被正确应用

方法一:使用Perfmon(性能监视器)添加计数器,选择“处理器信息”计数器,查看传输的元祖(NUMA节点,看处理器在零基线里)

这里只会显示有多少节点展现出来,和在每个节点里有多少处理器

方法二::使用任务管理器,使用这个方法,你能看到节点与编组的映射。选择处理器选项卡, 右击每个处理器,

选择“设置掩码。。。”,然后查看哪些节点在哪个编组。这里会显示每个编组都有哪些节点

总结

按照上面那篇文章所说的,那么msdn上说的“SQLSERVER2005企业版是支持操作系统最大处理器数目的” 不是很正确

本文由职坐标整理并发布,希望对同学们学习SQL Server有所帮助,更多内容请关注职坐标数据库SQL Server数据库频道!

sqlserver对cpu主频要求_SQLServer数据库之SQLSERVER能识别多少个逻辑CPU相关推荐

  1. sqlserver对cpu主频要求_SQLSERVER到底能识别多少个逻辑CPU?

    SQLSERVER到底能识别多少个逻辑CPU? 前言 在前几天在论坛有人遇到SQLSERVER识别逻辑CPU的问题 帖子地址: http://social.technet.microsoft.com/ ...

  2. SQLSERVER到底能识别多少个逻辑CPU?

    SQLSERVER到底能识别多少个逻辑CPU? 前言 在前几天在论坛有人遇到SQLSERVER识别逻辑CPU的问题 帖子地址: http://social.technet.microsoft.com/ ...

  3. sqlserver对cpu主频要求_SqlServer CPU篇及常用性能阈值

    一. 常见的CPU报错 遇到这些错误时,SqlServer并发响应速度会受到影响,甚至整个服务响应都非常慢,影响业务. 1. 17883报错--某个scheduler可能有问题 如果sqlserver ...

  4. mysql数据库单用户_SQLServer数据库之SqlServer数据库单用户模式无法删除的处理

    本文主要向大家介绍了SQLServer数据库之SqlServer数据库单用户模式无法删除的处理,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助. 今天在删除一个数据库时,一直 ...

  5. cpu 主频及相关介绍

    CPU的主频,即CPU内核工作的时钟频率(CPU Clock Speed).通常所说的某某CPU是多少兆赫的,而这个多少兆赫就是"CPU的主频".很多人认为CPU的主频就是其运行速 ...

  6. CPU主频越高越好吗

    CPU主频越高越好吗 在单核心时代,CPU主频是越高性能越好,现在是多核时代,并且架构不一样,即使主频一样,性能也不一样,不要被高主频所迷惑了.看看国外专业网站(http://www.cpubench ...

  7. 计算机处理器的hz越大越好,cpu主频越高越好吗,教您CPU处理器主频率越高越好吗...

    台电脑的好坏主要看配置的高低,因此电脑的配置参数成了大部分朋友配电脑的主要参考依据.就好比CPU,除了看核数之外还要看它的频率,频率越高的大家就觉得这个CPU性能越好.但是,CPU频率是不是越高越好呢 ...

  8. 提高计算机主频的方法,cpu主频如何调高

    当我们觉得电脑的cpu主频不够用时!该怎么样去调高呢?下面由学习啦小编给你做出详细的cpu主频调高方法介绍!希望对你有帮助! cpu主频调高方法一 就是开机的时候按一下"点"&qu ...

  9. mysql要求cpu主频还是核数_CPU主频和核数哪个更重要?电脑CPU到底主频高好还是多核好?...

    装机选购CPU无疑是重中之重,相当于人类的大脑,它决定了电脑运算的速度.对于DIY老鸟来说,一般会从架构.核心.主频等方面衡量一颗CPU好坏,这也是CPU性能的核心三要素.在相代相同架构的处理器,自然 ...

最新文章

  1. 百度绝对控股,小度科技独立融资,投后估值200亿元
  2. 2021广西高考成绩几点可以查询,高考完多久分数能出来广西 2021年广西高考分数查询公布时间...
  3. c++ socket编程_C/C++中的Socket编程
  4. VTK:PolyData之InterpolateMeshOnGrid
  5. Windows访问Linux的Tomcat,显示无法连接
  6. book1复习 使用java理解程序逻辑
  7. MVC的初步认识理论
  8. java 装饰者模式 替代方案_如何利用装饰者模式在不改变原有对象的基础上扩展功能...
  9. python实现K近邻算法
  10. ACID--事务四大特性
  11. [QCTF2018]Xman-RSA
  12. php工程师具备技能,PHP工程师具备的技能及素质
  13. echarts飞线图
  14. mybatis-plus 属性为空时判断问题
  15. 使用QQ推广作为客服或留言(转载)
  16. php缓冲区操作函数,PHP缓冲区的三个函数ob_start();ob_get_contents()
  17. JS中的`DOM`增删修
  18. oracle 删除所有外键
  19. linux 系统 DeepIn 安装网卡驱动RTL8812BU
  20. 13.56M刷卡芯片技术问答

热门文章

  1. 易听 - 苏教小学英语同步教材视频手机APP介绍
  2. citespace项目
  3. 【重要】opencv实现立体匹配
  4. 你是否正被浅薄语言所同化?(L先生说)
  5. 常用oid节点_Oid配置、解析方法、ors客户端、oid节点及其数据库的制作方法_4
  6. dpkg命令制作deb包
  7. 网页 查看源文件”时打开ie所在目录或打开桌面的解决办法综述
  8. 分享摩托罗拉milestone手机升级到Android 2.2的过程
  9. 计算机二级会考哪些知识,计算机二级WEB考试主要考哪些内容?
  10. mooc数据结构与算法python版期末测验_中国大学MOOC(慕课)_数据结构与算法Python版_测试题及答案...