避免 CPU 核心不匹配 - AWS 規範指南

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

避免 CPU 核心不匹配

選擇核心數量高於授權涵蓋範圍的伺服器,可能會導致 CPU 偏斜並浪費 CPU 電源。這是因為邏輯核心和實際核心之間的對應。當您使用 SQL Server 搭配用戶端存取使用授權 (CAL) 時,某些排程器將會VISIBLE ONLINE其餘的將是VISIBLE OFFLINE。這可能會導致非統一記憶體存取 (NUMA) 拓撲的效能問題,因為排程器節點未以最佳方式使用。

例如,如果您執行 SQL 伺服器m5.24xlarge例如,它將檢測兩個帶有 24 個內核的套接字,每個插槽 48 個邏輯處理器,這導致總共 96 個邏輯處理器。如果您只有 48 個核心的授權,您會在 SQL Server 錯誤記錄檔中看到類似下列內容的訊息:

伺服器 SQL 伺服器偵測到 2 個插槽,每個插槽 24 個核心和每個插槽 48 個邏輯處理器,共有 96 個邏輯處理器;使用基於 SQL Server 授權的 48 個邏輯處理器。這是資訊性訊息;不需要使用者動作。

如果您看到 SQL Server 所使用的核心總數與核心數之間有所差異,請檢查 CPU 使用量不平衡,或使用與授權支援的核心數相同的伺服器類型。

中央處理器偏斜:對於我們示例中的實例類型(m5.24xlarge),SQL 伺服器預設會建立八個 NUMA 節點。其中只有四個節點 (父節點識別碼 0,1,2,3) 具有狀態的排程器VISIBLE ONLINE。剩下的時間表都是VISIBLE OFFLINE。排程器之間的這種差異可能會導致效能降低。

若要檢查排程器資訊和狀態,請使用:

$ select * from sys.dm_os_schedulers

如果您想要使用的伺服器執行個體的核心數目高於 SQL Server 授權支援,請考慮依照中的指示自訂核心數目指定執行個體的 CPU 選項在亞馬遜 EC2 文檔中。