sql server 2016不能全部用到CPU的邏輯核心數(shù)的問題
最近在工作中遇到了,sql server 2016 不能把CPU 的核心全部用到的問題.通過分析工具看到
總共CPU核心有72核,但sql 只能用到40核心,想信也有很多人遇到這問題,那么今天這節(jié)就先說說這問題是怎么出現(xiàn)的。
首先 介紹下服務(wù)器的環(huán)境
Windows 2008 R2 Enterprise Edition(X64) + Microsoft SQL Server 2012 (SP1)Enterprise Edition (64-bit)
CPU 2路 18核 開啟超線程后是72核心 如圖:
再看sql實(shí)例的屬性 如圖:
sql server 其實(shí)已經(jīng)認(rèn)出了總的核心數(shù) 72
那么sql server 是不是代表就能全部使用上呢,通過系統(tǒng)視圖可以看到
select * from sys.dm_os_schedulers where is_online=1 AND status='VISIBLE ONLINE'
sql sever 真正用到的只有40個(gè)核心。
那么 我們知道,Process Group這個(gè)概念是在Windows server 2008 (x64)才引入的技術(shù),sql server 2008 R2 及以后的版本,都使用Process Group 的技術(shù),為什么 sql server 2016 Enterprise Edition (64-bit) 的居然還有這問題,
是不是 有點(diǎn)說不過去呢?
是不是 sql 的版本不對,那么我通過 執(zhí)行 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位 企業(yè)版的啊 ! 為什么不行? 經(jīng)過網(wǎng)上查找發(fā)現(xiàn) ,sql server 2016 企業(yè)版的有兩種 , 一種就是上面看到的 ,他最多只能認(rèn)到單組64核心,因?yàn)樘幚砥骶幗M的原因,它只用到了其中的一組40核心的,而另一組32核心的,沒有辦法再用到。
那么最簡單的辦法就是把現(xiàn)有sql 的版本給升級到 SQL SERVER 2016 ENTERPRISE CORE Edition
打開 sqlserver 安裝中心 如圖:
維護(hù) -版本升級
SQL Server 2016 Enterprise Core Edition: TBR8B-BXC4Y-298NV-PYTBY-G3BCP
輸入 core 版本的序列號,然后就 下一步 下一步 下一步 一直點(diǎn)下去 ,等它升級完了。
接下來 ,我們再去看sql server 這時(shí)是不是真真正正的,全部都用上了 72個(gè)核心。
這時(shí),我們再用 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 的標(biāo)識(shí)了 ,同時(shí)SQLSERVER的對內(nèi)核的限制也取消了!!
到此這篇關(guān)于sql server 2016不能全部用到CPU的邏輯核心數(shù)的問題的文章就介紹到這了,更多相關(guān)CPU的邏輯核心數(shù)內(nèi)容請搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!
相關(guān)文章:
