首页 > 数据库 >数据库服务器CPU不能全部利用原因分析

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

时间:2022-11-07 10:47:17浏览次数:35  
标签:核心 数据库 Server 会话 SQL 服务器 CPU

背景

客户凌晨把HIS数据库迁移到配置更高的新服务器,上午业务高峰时应用非常缓慢。

现象

通过SQL专家云实时可视化界面看到大量的绿点,绿点表示会话在等待某项资源,绿点越大说明等待的会话数越多。

 

 

 

进入活动会话列表,发现大量会话的状态为runnable,runnable代表这个会话可以执行,但没有 CPU 可以分配给它,可以理解为正在等待 CPU 这项系统资源。

 

 

但是此时服务器的CPU利用率并不高,在30%左右。

 

 

 

从任务管理器里查看,服务器有128核心,但是绝大多数核心根本利用不上。

 

 

 SQL专家云深度体检里有相应的诊断,SQL Server在线的CPU核数40小于检测到的CPU核数128,说明SQL Server只使用了40个核心。

 

 

没有SQL专家云,可以使用下面的语句查询。

--CPU总数
SELECT
  cpu_count
FROM
  sys.dm_os_sys_info

--在线CPU数
SELECT
  COUNT(*)
FROM
  sys.dm_os_schedulers
WHERE
  is_online = 1
  AND status = 'VISIBLE ONLINE'

分析

从SQL Server 2012开始,企业版有两种许可证模式,基于核心和基于服务器+CAL。基于服务器+CAL许可证限制SQL Server最多能使用20个物理处理器,如果超线程已启用,这将是40个逻辑处理器。

确认数据库的版本为SQL server 2012 Enterprise Edition,也就是服务器+CAL许可证模式。

 

 

解决

在SQL Server安装文件中更换序列号,升级到基于核心的许可模式。

 

 

 

 

 重启SQL Server服务后,在SQL专家云中确认已经是基于核心的许可证模式了,并且能用使用到128个核心。

 

 

 

其它情况

如下图,在为虚拟机分配CPU时,配置了16个插槽,每个插槽内核数为1,这样SQL Server标准版只能使用到4个CPU。应该合理的配置,例如2和8或者4和4。

 

标签:核心,数据库,Server,会话,SQL,服务器,CPU
From: https://www.cnblogs.com/zhuancloud/p/16865154.html

相关文章

  • 数据库连接池Druid的工具类
    定义Druid的工具类使用步骤:1.导入druid的jar包;<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.16</ver......
  • 第三十九章 构建数据库应用程序 - 将数据绑定到表单
    第三十九章构建数据库应用程序-将数据绑定到表单CSP提供了一种将对象数据绑定到HTML表单的机制。这种绑定使用标准的HTML表单和输入控件标签来定义表单,使可以轻松地使......
  • Content-Length设置不对被服务器拒绝
    在发请求到 https://drive.quark.cn时,第一个请求是Post,headers里有一个Content-Length。response=self.session.post(url='htt......
  • uniapp云数据库笔记
    1.使用客户端API直接操作数据库获取数据和对应的集合(表)//获取数据库constdb=uniCloud.database()//获取表constcollection=db.collection('contacts')调用......
  • MySQL数据库如何改名
    前戏有时候生产环境是以项目来命名,有时候会出现更名情况,其实如何安全的更改数据库名,是个非常棘手的问题,特别是针对MySQL来数据库来说被取消的命令MySQL之前提供了一个re......
  • 数据库设计心得——高校招生录取系统
    数据库设计心得——高校招生录取系统前言在软件工程导论项目课程中,我们负责的项目是高校招生录取系统并对其展开了数据库设计。我们通过PowerDesigner完成了本项目的数据......
  • CPU端多进程/多线程调用CUDA是否可以加速???
    相关:NVIDIA显卡cuda的多进程服务——MPS(Multi-ProcessService)tensorflow1.x——如何在C++多线程中调用同一个session会话tensorflow1.x——如何在python多线程中......
  • 达梦数据库主从配置
    数据库名    实例名PORT_NUMMAL_INST_DW_PORTMAL_HOSTMAL_PORTMAL_DW_PORT备注DMSERVER01DMSERVER01523745101192.168.0.128 5510165101主库DMSERVER02DMSERVER025237......
  • IDC服务器安装dnsmasq
    场景介绍:由于之前使用的阿里云的privatezone,如果主机都在阿里云还挺方便的,不过最近要搞迁移到IDC机房,所以还是需要本地的一个DNS解析服务器。Dnsmasq是一个很实用的小工具......
  • 配置服务器免密登录
    User:acs_5821HostName:123.57.47.211Password:xxxxxxxx配置服务器密匙登录配置上述服务器的密匙登录,并将服务器账号名字(Host)配置成:myserver以下操作均在本地进......