SQL?SERVER數(shù)據(jù)庫服務(wù)器CPU不能全部利用原因解析
背景
客戶凌晨把HIS數(shù)據(jù)庫遷移到配置更高的新服務(wù)器,上午業(yè)務(wù)高峰時(shí)應(yīng)用非常緩慢,嚴(yán)重影響到業(yè)務(wù)運(yùn)行。
1.現(xiàn)象
通過SQL專家云實(shí)時(shí)可視化界面看到大量的綠點(diǎn),綠點(diǎn)表示會(huì)話在等待某項(xiàng)資源,綠點(diǎn)越大說明等待的會(huì)話數(shù)越多。

進(jìn)入活動(dòng)會(huì)話列表,發(fā)現(xiàn)大量會(huì)話的狀態(tài)為runnable,runnable代表這個(gè)會(huì)話可以執(zhí)行,但沒有 CPU 可以分配給它,可以理解為正在等待 CPU 這項(xiàng)系統(tǒng)資源。

但是此時(shí)服務(wù)器的CPU利用率并不高,在30%左右。

從任務(wù)管理器里查看,服務(wù)器有128核心,但是絕大多數(shù)核心根本利用不上。

SQL專家云深度體檢里有相應(yīng)的診斷,SQL Server在線的CPU核數(shù)40小于檢測(cè)到的CPU核數(shù)128,說明SQL Server只使用了40個(gè)核心。

沒有SQL專家云,可以使用下面的語句查詢。
--CPU總數(shù) SELECT cpu_count FROM sys.dm_os_sys_info --在線CPU數(shù) SELECT COUNT(*) FROM sys.dm_os_schedulers WHERE is_online = 1 AND status = 'VISIBLE ONLINE'
2.分析
從SQL Server 2012開始,企業(yè)版有兩種許可證模式,基于核心和基于服務(wù)器+CAL?;诜?wù)器+CAL許可證限制SQL Server最多能使用20個(gè)物理處理器,如果超線程已啟用,這將是40個(gè)邏輯處理器。
確認(rèn)數(shù)據(jù)庫的版本為SQL server 2012 Enterprise Edition,也就是服務(wù)器+CAL許可證模式。

3.解決
在SQL Server安裝文件中更換序列號(hào),升級(jí)到基于核心的許可模式。



重啟SQL Server服務(wù)后,在SQL專家云中確認(rèn)已經(jīng)是基于核心的許可證模式了,并且能用使用到128個(gè)核心。

4.其它情況
如下圖,在為虛擬機(jī)分配CPU時(shí),配置了16個(gè)插槽,每個(gè)插槽內(nèi)核數(shù)為1,這樣SQL Server標(biāo)準(zhǔn)版只能使用到4個(gè)CPU。應(yīng)該合理的配置,例如2和8或者4和4。


到此這篇關(guān)于SQL SERVER數(shù)據(jù)庫服務(wù)器CPU不能全部利用原因解析的文章就介紹到這了,更多相關(guān)SQL SERVER 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL 5.5的max_allowed_packet屬性的修改方法
今天在部署一個(gè)實(shí)驗(yàn)系統(tǒng)的時(shí)候,報(bào)錯(cuò)提示需要修改一下MySQL的配置文件,在修改的時(shí)候是有技巧的,大家可以參考下本文嘗試操作下2013-08-08
關(guān)于MYSQL 遠(yuǎn)程登錄的授權(quán)方法 命令
默認(rèn)是不允許遠(yuǎn)程連接的,因?yàn)橛泻艽蟮陌踩[患。需要手動(dòng)增加可以遠(yuǎn)程訪問數(shù)據(jù)庫的用戶2011-11-11
Mysql中自定義函數(shù)的創(chuàng)建和執(zhí)行方式
這篇文章主要介紹了Mysql中自定義函數(shù)的創(chuàng)建和執(zhí)行方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
mysql實(shí)現(xiàn)本地keyvalue數(shù)據(jù)庫緩存示例
這篇文章主要介紹了代碼實(shí)現(xiàn)本地Key-Value緩存示例,大家參考使用吧2013-12-12
帶你學(xué)習(xí)MySQL執(zhí)行計(jì)劃
前面文章,我們學(xué)習(xí)了 MySQL 慢日志相關(guān)內(nèi)容,當(dāng)我們篩選得到具體的慢 SQL 后,就要想辦法去優(yōu)化啦。優(yōu)化 SQL 的第一步應(yīng)該是讀懂 SQL 的執(zhí)行計(jì)劃。本篇文章,我們一起來學(xué)習(xí)下 MySQL explain 執(zhí)行計(jì)劃相關(guān)知識(shí)。2021-05-05

