SQL SERVER数据库服务器CPU不能全部利用原因分析

dba 发布于 2024-01-03 阅读(29)

数据库迁移到配备更高新服务器,早上业务流程高峰期时使用特别迟缓,严重影响了业务流程运作。很多会话的情况为runnable,runnable代表这个会话能够实行,但却没有CPU能够分给它,可以看作已经等候CPU此项服务器资源。
可是这时云服务器CPU使用率并不是很高,在30%上下。

可以用下边的句子查看。

--CPU数量
SELECT
cpu_count
FROM
sys.dm_os_sys_info
--线上CPU数
SELECT
COUNT(*)
FROM
sys.dm_os_schedulers
WHERE
is_online=1
ANDstatus='VISIBLEONLINE'


2.剖析
从SQLServer2012逐渐,商业版主要有两种许可证书方式,根据关键和根据网络服务器+CAL。根据网络服务器+CAL许可证书限定SQLServer顶多能应用20个物理学Cpu,假如超线程已启用,将会是40个逻辑性Cpu。
确定数据库版本号为SQLserver2012EnterpriseEdition,其实就是网络服务器+CAL许可证书方式。

3.处理
在SQLServer安装文档中拆换系列号,升级成根据最核心的批准方式。
重新启动SQLServer服务项目后,在SQL权威专家云间确定已是根据最核心的许可证书模式了,而且可用用到128个关键。

4.其他状况
如下图所示,要为vm虚拟机分派CPU时,配备了16个扩展槽,每一个扩展槽核心数达1,那样SQLServer标准版必须使用到4个CPU。应当有效配置,比如2和8或是4和4。