sqlserver 热添加CPU方法及注意事项

一、 热添加CPU的要求

  • 支持热添加CPU的硬件。
  • 64位的Windows Server 2008 Datacenter或 Enterprise Edition(用于基于Itanium的系统)操作系统。
  • 需要SQL Server Enterprise。
  • 无法将SQL Server配置为使用软NUMA。有关软NUMA的更多信息,请参见Soft-NUMA(SQL Server)

二、 注意事项

添加CPU之后,SQL Server不会自动使用它们,防止SQL Server使用可能为其他目的添加的CPU。需要执行RECONFIGURE语句,才会识别新的CPU为可用资源。

如果使用了affinity64掩码配置,必须将其修改为使用新的CPU。

 

三、 添加过程最佳实践

1. 检查是否启用SQL Server Processor Affinity

a check on SQL Server Processor properties page show SQL Server is initially setup with 1 vCPU

或者

EXEC sp_configure 'show advanced options', 1
RECONFIGURE
EXEC sp_configure 'affinity mask'
GO

2. 检查SQL Server Schedulers

sys.dm_os_schedulers在SQL Server中为每个Scheduler返回一行,每个Scheduler都映射到一个逻辑CPU。

其中scheduler_id小于1048576的用于调度来自用户的常规查询,大于等于1048576的则由SQL Server在内部(例如专用管理连接)使用。

SELECT * FROM sys.dm_os_schedulers;

Check the SQL Server Schedulers DMV and confirms there is only one scheduler

3. 给服务器添加CPU

可以在线完成此操作,而不会中断服务器上任何正在运行的进程。热添加后,可以在Windows任务管理器中看到CPU变为预期数目,例如示例中的1核变为2核。但变为2核后sqlserver的CPU使用率最多只会到50%,因为SQL Server仍然无法利用热添加的CPU。

 

4. 检查SQL Server能看到的CPU数

可以看到SQL Server现在显示2个CPU,但是查sys.dm_os_schedulers会发现此时还是只有1个scheduler。

检查SQL Server实例属性,SQL Server显示2个vCPU

5. 运行Reconfigure 命令识别热添加的CPU

RECONFIGURE
GO

6. 再次检查前面各项

  • “SQL Server处理器”属性页,可以看到热添加的新CPU。

再次检查“ SQL Server处理器”属性页,热添加的vCPU出现为CPU1

  • 再次检查sys.dm_os_schedulers,SQL Server已为热添加的CPU创建了一个scheduler,scheduler_id=1,status为VISIBLE ONLINE HOT_ADDED。

执行查询以再次检查SQL Server Schedulers DMV

  • 如果sqlserver负载较高,此时可以看到cpu使用率已超过了50%

在Windows任务管理器中,两个处理器上的vCPU利用率均已提高

7. scheduler状态变更

当重启SQL Server服务之后,sys.dm_os_schedulers视图中新加的CPUstatus列将变为VISIBLE ONLINE。

如果重新启动SQL Server服务或Windows Server,则调度程序DMV状态列中的热添加vCPU说明将更改为VISIBLE ONLINE
 
 

参考

https://www.mssqltips.com/sqlservertip/3040/how-to-hotadd-a-vcpu-to-a-virtual-sql-server/

https://docs.microsoft.com/en-us/sql/relational-databases/thread-and-task-architecture-guide?view=sql-server-2017

发布了218 篇原创文章 · 获赞 29 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/Hehuyi_In/article/details/103976770