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