SQL?SERVER數(shù)據(jù)庫服務(wù)器CPU不能全部利用原因解析
背景
客戶凌晨把HIS數(shù)據(jù)庫遷移到配置更高的新服務(wù)器,上午業(yè)務(wù)高峰時應(yīng)用非常緩慢,嚴(yán)重影響到業(yè)務(wù)運(yùn)行。
1.現(xiàn)象
通過SQL專家云實(shí)時可視化界面看到大量的綠點(diǎn),綠點(diǎn)表示會話在等待某項資源,綠點(diǎn)越大說明等待的會話數(shù)越多。
進(jìn)入活動會話列表,發(fā)現(xiàn)大量會話的狀態(tài)為runnable,runnable代表這個會話可以執(zhí)行,但沒有 CPU 可以分配給它,可以理解為正在等待 CPU 這項系統(tǒng)資源。
但是此時服務(wù)器的CPU利用率并不高,在30%左右。
從任務(wù)管理器里查看,服務(wù)器有128核心,但是絕大多數(shù)核心根本利用不上。
SQL專家云深度體檢里有相應(yīng)的診斷,SQL Server在線的CPU核數(shù)40小于檢測到的CPU核數(shù)128,說明SQL Server只使用了40個核心。
沒有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個物理處理器,如果超線程已啟用,這將是40個邏輯處理器。
確認(rèn)數(shù)據(jù)庫的版本為SQL server 2012 Enterprise Edition,也就是服務(wù)器+CAL許可證模式。
3.解決
在SQL Server安裝文件中更換序列號,升級到基于核心的許可模式。
重啟SQL Server服務(wù)后,在SQL專家云中確認(rèn)已經(jīng)是基于核心的許可證模式了,并且能用使用到128個核心。
4.其它情況
如下圖,在為虛擬機(jī)分配CPU時,配置了16個插槽,每個插槽內(nèi)核數(shù)為1,這樣SQL Server標(biāo)準(zhǔn)版只能使用到4個CPU。應(yīng)該合理的配置,例如2和8或者4和4。
到此這篇關(guān)于SQL SERVER數(shù)據(jù)庫服務(wù)器CPU不能全部利用原因解析的文章就介紹到這了,更多相關(guān)SQL SERVER 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL 5.5的max_allowed_packet屬性的修改方法
今天在部署一個實(shí)驗系統(tǒng)的時候,報錯提示需要修改一下MySQL的配置文件,在修改的時候是有技巧的,大家可以參考下本文嘗試操作下2013-08-08關(guān)于MYSQL 遠(yuǎn)程登錄的授權(quán)方法 命令
默認(rèn)是不允許遠(yuǎn)程連接的,因為有很大的安全隱患。需要手動增加可以遠(yuǎn)程訪問數(shù)據(jù)庫的用戶2011-11-11Mysql中自定義函數(shù)的創(chuàng)建和執(zhí)行方式
這篇文章主要介紹了Mysql中自定義函數(shù)的創(chuàng)建和執(zhí)行方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03mysql實(shí)現(xiàn)本地keyvalue數(shù)據(jù)庫緩存示例
這篇文章主要介紹了代碼實(shí)現(xiàn)本地Key-Value緩存示例,大家參考使用吧2013-12-12