sql server 2016不能全部用到CPU的邏輯核心數的問題

最近在工作中遇到瞭,sql server 2016 不能把CPU 的核心全部用到的問題.通過分析工具看到 

總共CPU核心有72核,但sql 隻能用到40核心,想信也有很多人遇到這問題,那麼今天這節就先說說這問題是怎麼出現的。

首先  介紹下服務器的環境

 Windows 2008 R2 Enterprise Edition(X64) + Microsoft SQL Server 2012 (SP1)Enterprise Edition (64-bit)

 CPU 2路 18核 開啟超線程後是72核心  如圖:

再看sql實例的屬性  如圖:

sql server 其實已經認出瞭總的核心數  72  

那麼sql server 是不是代表就能全部使用上呢,通過系統視圖可以看到  

select  * from sys.dm_os_schedulers where is_online=1 AND status='VISIBLE ONLINE'

sql sever 真正用到的隻有40個核心。

那麼 我們知道,Process Group這個概念是在Windows  server 2008 (x64)才引入的技術,sql server 2008 R2 及以後的版本,都使用Process Group 的技術,為什麼 sql server 2016 Enterprise Edition (64-bit) 的居然還有這問題,

是不是 有點說不過去呢?

是不是 sql 的版本不對,那麼我通過 執行 select @@version  查看版本的命令 ,查出版本是 

Microsoft SQL Server 2016 (SP1) – 11.0.3128.0 (X64) 

    Dec 28 2012 20:23:12 

    Copyright (c) Microsoft Corporation

    Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)

是64位 企業版的啊 ! 為什麼不行? 經過網上查找發現 ,sql server 2016  企業版的有兩種 , 一種就是上面看到的 ,他最多隻能認到單組64核心,因為處理器編組的原因,它隻用到瞭其中的一組40核心的,而另一組32核心的,沒有辦法再用到。

那麼最簡單的辦法就是把現有sql 的版本給升級到 SQL SERVER 2016 ENTERPRISE CORE  Edition

打開 sqlserver 安裝中心  如圖:  

維護 -版本升級

   SQL Server 2016 Enterprise Core Edition: TBR8B-BXC4Y-298NV-PYTBY-G3BCP

  輸入 core  版本的序列號,然後就 下一步  下一步  下一步  一直點下去 ,等它升級完瞭。    

接下來 ,我們再去看sql server  這時是不是真真正正的,全部都用上瞭 72個核心。     

這時,我們再用 SELECT @@version  看下sql 的版本信息

Microsoft SQL Server 2016 (SP1) – 11.0.3128.0 (X64) 

    Dec 28 2012 20:23:12 

    Copyright (c) Microsoft Corporation

    Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)

我們看到   Core-based Licensing  的標識瞭 ,同時SQLSERVER的對內核的限制也取消瞭!!

到此這篇關於sql server 2016不能全部用到CPU的邏輯核心數的問題的文章就介紹到這瞭,更多相關CPU的邏輯核心數內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: