從 bios 禁用“numa interleave”是否會導致所有雙 CPU 系統上的記憶體頁面輸出(當 cpu-1 沒有可用記憶體時)到 hdd?
以每個 CPU 24GB 的戴爾雙 4114 銀的範例係統為例;如果我的應用程序一次分配 24 GB,它將如何工作?由於頁面文件的使用,我是否應該擔心我的 SSD 的寫入壽命?
關於範例的記憶體注意事項:6x8GB 平均分配給兩個 CPU(每個 CPU 上的單個記憶體控制器上可能有 3 個棒)
在 BIOS 中禁用節點交錯不會導致系統交換。
更準確地說,禁用此選項會將 NUMA 交錯置於作業系統控制之下。此選項適用於執行不知道 NUMA 的古老作業系統的人。啟用後,系統會將所有 CPU 核心呈現給作業系統,就好像它們只佔用一個 CPU 插槽一樣,並自行執行 NUMA 交錯。這通常不是您想要的現代 NUMA 感知作業系統,例如 Linux 或 Windows。
更詳細的解釋來自戴爾的BIOS 性能和電源調整指南:
BIOS 記憶體設置螢幕中的另一個選項是節點交錯。此選項預設禁用,即啟用 NUMA 模式。相反,啟用節點交錯意味著記憶體在記憶體節點之間交錯,並且沒有向作業系統呈現 NUMA。大多數現代作業系統多年來一直支持 NUMA,並且調度程序已經過優化,以確保記憶體分配被本地化到正確的(最近的)NUMA 節點。但是,這些調度程序並不完美,為了在給定的工作負載(尤其是基準測試)下實現最大性能,可能需要手動干預以將工作負載程序和執行緒“固定”到特定核心,確保始終將記憶體分配給本地 NUMA任何給定邏輯處理器的節點。
對於需要的記憶體大於單個記憶體節點中可用記憶體的某些應用程序(例如非常大的數據庫),記憶體分配也必鬚髮生在遠端節點上。在這種情況下,或者對於其他無法輕鬆定位到單個套接字/NUMA 節點組合的應用程序,啟用節點交錯可能會產生積極的影響。幾年前啟用節點交錯是最常見的,當時 NUMA 是相對較新的 x86 伺服器和作業系統還沒有 NUMA 意識。然而,這種情況已經從根本上得到改善,如今需要啟用節點交錯的客戶數量正在減少。請注意,4P E5-4600 配置不支持啟用節點交錯。
對於目前支持 NUMA 的作業系統,應禁用此選項,並且應在作業系統內調整 NUMA。