using 40 logical processors based on SQL Server licensing SqlServer CPU核心数限制问题

公司服务器是120核心cpu,但是实际应用中只有40核,原因是业务部门发现服务器cpu承载30%的时候sql 就会卡死;

然后从sqlserver 去查询,cpu核心数;

SELECT COUNT(1) FROM SYS.DM_OS_SCHEDULERS WHERE SCHEDULER_ID<255

结果:120

但是cpu核心数对于sqlserver 是可以配置调节;

然后查看在使用是多少个?

SELECT COUNT(1) FROM SYS.DM_OS_SCHEDULERS WHERE SCHEDULER_ID<255 AND IS_ONLINE=1

结果:40

到此问题差不多有了答案! 下面找到就要解决:

然后从启动日志ERROR 找到对应启动项,sqlserver 使用cpu数以及NUMA;---当然我所在公司服务器配置有点好,知道就行了;

xp_readerrorlog

(CPU)SQL Server detected 4 sockets with 15 cores per socket and 30 logical processors per socket, 120 total logical processors; using 40 logical processors based on SQL Server licensing. This is an        informational message; no user action is required.

(NUMA)image

 

从error上看,系统许可40逻辑cpu 给sqlserver 使用,那80cpu 岂不白白的浪费掉了;

MSDN:

这是SQL的企业版,所以我期待它使用所有处理器和机器的全部功能。我搜索许可指南,发现从SQL Server 2012起,有两个企业许可证 - 核心和基于服务器/ CAL为主。根据我的研究,基于CAL许可证限制SQL企业仅使用20个物理处理器。如果超线程已启用,这将是40个逻辑处理器。

我们已经确定,这种行为是正确的,因为每个许可证他们购买。由于这是他们最重要的服务器,他们已经购买了基于内核许可。他们回来找我,问 - “?我们怎样才能改变安装的SQL Server使用的基于核心许可证”

秘钥? 重新安装,再重启服务! 没办法了;

Command:

Setup.exe   /q /ACTION=editionupgrade /INSTANCENAME=MSSQLSERVER /PID=<PID key for new edition>” /IACCEPTSQLSERVERLICENSETERMS

具体参数:(msdn)https://msdn.microsoft.com/zh-SG/library/df40c888-691c-4962-a420-78a57852364d(v=sql.110)

也可以界面化:

比如

image 

 

image

OVER!

坑爹又要收费;

posted @ 2016-09-21 14:19  Hello·Word  阅读(2342)  评论(0编辑  收藏  举报