我如何知道 SQL Server 實際使用了多少核心?
我有兩台執行 SQL Server 的伺服器。
- 伺服器 1:SQL Server 2008 R2 Express(4 核)
- 伺服器2:SQL Server 2012 開發者版(8核)
據我所知,SQL Server 2008 R2 Express 應該只使用一個核心。
SQL Server 2012 Developer 版本應該使用全部 8 個核心。
但是,如果我在 SQL Server 2008 R2 Express 上的 SQL 查詢中執行以下命令,它會顯示 4 個核心。
select scheduler_id, cpu_id, status, is_online from sys.dm_os_schedulers where status = 'VISIBLE ONLINE'
我是否使用正確的命令來衡量使用情況?
Express 版受限於 1 個處理器,而不是 1 個核心:
SQL Server 支持指定數量的處理器插槽乘以每個插槽中的邏輯 CPU 數量。例如,出於此表的目的,以下被視為單處理器: 單核、超執行緒處理器,每個插槽具有 2 個邏輯 CPU。具有 2 個邏輯 CPU 的雙核處理器。具有 4 個邏輯 CPU 的四核處理器。SQL Server 是按處理器 插槽許可的,而不是按邏輯 CPU許可的。
http://msdn.microsoft.com/en-us/library/ms143760(v=sql.105).aspx
是的,sys.dm_os_schedulers 可用於確保所有 4 個核心都映射到調度程序。
對大於 2007 的作業系統使用此命令:
->> WMIC CPU Get DeviceID,NumberOfCores,NumberOfLogicalProcessors
對於物理伺服器 DeviceID ~ Socket, NumberofCores ~ CPU’s, NumberOfLogicalProcessors ~ Threads。MS 現在使用基於核心的許可模型。CAL 超出範圍。如果需要更多資訊,請搜尋“Microsoft SQL Server 2012 許可指南”。
下面的範例對於標準/企業版 2 件裝 *4 CPU SQL Server 許可證的成本/收費是必要的。總共 8 個核心 (CPU)。
DeviceID NumberOfCores NumberOfLogicalProcessors CPU0 4 8 CPU1 4 8
任務管理器中的性能選項卡或資源監視器中的 CPU 選項卡將顯示 16 個 CPU 正在執行。邏輯處理器。搜尋“Intel X5550”,這是我正在檢查的處理器。英特爾在網站ark.intel.com上提供了所有規格,以檢查所需的資訊。