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

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

时间:2023-01-15 20:13:36浏览次数:43  
标签:核心 数据库 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_countFROM  sys.dm_os_sys_info
--在线CPU数SELECT COUNT(*)FROM sys.dm_os_schedulersWHERE 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/17054031.html

相关文章

  • 服务器Raid配置的一些思考
    背景随着公司软件的发展.客户越来越多.测试环境和兼容环境也越来越多.不管是虚拟化,还是裸金属做数据库存储都是绕不开的一道门槛.最近又上架了几台服务器,所以想趁......
  • Spring Boot---(13)Spring Boot 使用JPA访问数据库
    摘要:Spring-data-jpa的强大和方便之处在于:可以仅仅用一层接口,就可以实现对数据库的访问和操作。本文详细介绍了,SpringBoot环境下如何使用Spring-data-jpa来访问和操作数据......
  • MySQL数据库基本操作-DML
     MySQL性能强劲,是目前使用最广泛的数据库之一,以 MySQL为学习原型也方便之后掌握其他数据库,下面就给大家全面讲解下MySQL8.0的新特性,从零基础到高阶一站式学习,结合实际案例......
  • idea本地调试远程服务器的代码
    1.服务器暴露远程调试端口java-Xdebug-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8089-jardemo-1.0.0-SNAPSHORT.jar2.暴露服务端口http://12......
  • 服务器租用价格抉择哪些合适免备案
    服务器租用的费用,一般是由以下几个不同的方面决定的:1.服务器的配置,服务器的配置是决定租用价格的主要因素。品牌不同、配置不一样的服务器的性能差距是非常大的,所以价......
  • Linux下查看CPU信息, 包括位数和多核信息
     以redhat6.0为例:查看当前操作系统发行版信息#cat/etc/issueRedHatEnterpriseLinuxServerrelease6.0(Santiago)Kernel\ronan\m查看cpu型号#cat/proc/cpuinf......
  • linux数据库命令
    数据库篇1.查看数据库执行的sql/usr/sbin/tcpdump-ieth0-s0-l-w-dstport3306|strings|egrep-i'SELECT|UPDATE|DELETE|INSERT|SET|COMMIT|ROLLBACK|CREATE|D......
  • 极客编程python入门-数据库
    数据库程序运行的时候,数据都是在内存中的。当程序终止的时候,通常都需要将数据保存到磁盘上,无论是保存到本地磁盘,还是通过网络保存到服务器上,最终都会将数据写入磁盘文件。使......
  • mysql 数据库设计三大范式
    1.什么是设计范式设计表的依据,按照范式设计出来的表,不会出现数据的冗余数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构清晰的;反之则是......
  • oracle数据库坏块恢复—存在rman备份
    文档课题:oracle数据库坏块恢复—存在rman备份.数据库:oracle19.12多租户1、坏块查询SQL>setnumw20SQL>setline200SQL>select*fromv$database_block_corruption......