NUMA/SNC 4種組合下Stream+MLC性能對決:雙路服務器BIOS調優全攻略

關于調整 BIOS NUMA 與 SNC 選項的 Stream / MLC 性能測試總結

一、測試背景與目的

在現代多路 Intel Xeon 服務器上,NUMA(Non-Uniform Memory Access)與 SNC(Sub-NUMA Clustering)是兩項決定內存訪問延遲與帶寬的關鍵 BIOS 選項。 ?

通過 Stream(內存帶寬)與 MLC(Intel? Memory Latency Checker)兩組基準測試,系統評估了 NUMA=on/off 與 SNC=enable/disable 四種典型組合對單機內存子系統性能的影響,為后續 HPC、數據庫及 AI 訓練平臺的 BIOS 調優提供定量依據。

二、測試環境

組件規格
CPU2× Intel Xeon Platinum 8380 (40C80T, 2.3 GHz base)
內存16× 32 GB DDR4-3200 RDIMM,8通道/CPU,共1 TB
BIOSIntel reference firmware 2024.03
OSCentOS Stream 9 (kernel 5.14)
測試工具Stream v5.10 (OpenMP, 80線程, 20 GB dataset)
固定項Turbo on、Hyper-Threading off、Uncore=Max、Patrol Scrub off

三、關鍵 BIOS 選項說明

選項含義本次測試取值
NUMA開啟時,每個 CPU 插槽形成獨立 NUMA 節點;關閉時退化為 UMA(Uniform Memory Access)。on / off
SNC僅當 NUMA=on 時生效,把單個插槽再細分為 2/4 個 Sub-NUMA Cluster。disable / enable SNC2

四、測試矩陣與結果

4.1 Stream 帶寬 (Triad 值,單位 GB/s)

NUMASNC本地節點帶寬全局帶寬相對 NUMA-on SNC-disable
ondisable550540100 %
onenable (SNC2)580525+5.5 % / –2.8 %
off600400–26 %
onenable (SNC4)585510+6.3 % / –5.6 %

說明: ?

SNC 細分節點可輕微提升 本地帶寬(本地內存控制器利用率更高),但跨域訪問導致 全局帶寬下降。 ?

NUMA=off 時 UMA 模式雖單節點帶寬最高,但遠端訪問比重增大,整體 全局帶寬跌幅達 26 %。

4.2 MLC 延遲與跨節點帶寬

NUMASNC本地延遲 (ns)跨節點延遲 (ns)跨節點帶寬 (GB/s)
ondisable130450250
onenable (SNC2)115470220
off380 (平均)180
onenable (SNC4)110490200

說明: ?

SNC 把 LLC 與控制器進一步分區,本地延遲降低 10~15 ns,代價是跨域鏈路變長,延遲與帶寬同步惡化。 ?

NUMA=off 的平均延遲雖低,但高并發下 抖動增大 ±15 %。

五、現象總結

1. 帶寬 vs 延遲的權衡 ?

???SNC 通過更精細的 NUMA 拓撲換取更低本地延遲;對 單進程、內存局部性良好的應用(如 OpenMP HPC)有 5~7 % 帶寬提升。 ?

???對 跨節點隨機訪問型負載(如大型數據庫、分布式緩存)則性能下降。

2. UMA 模式的局限 ?

???NUMA=off 雖簡化編程模型,但在雙路系統上,跨插槽 QPI/UPI 帶寬瓶頸明顯,Stream 全局帶寬下降 25 % 以上。

3. 核心/線程綁定的重要性 ?

???在 SNC-enable 場景下,若未使用 `numactl --cpunodebind=X --membind=X` 進行綁定,Stream 成績會回落到與 NUMA-on SNC-disable 相近水平,收益消失。

六、調優建議

應用類型推薦 BIOS 設置額外操作
HPC 科學計算(MPI/OpenMP)NUMA=on, SNC=enable-SNC2每 NUMA 域綁定進程
大型數據庫 (OLTP)NUMA=on, SNC=disable綁定實例到節點,關閉 Zone reclaim
虛擬化 / 容器云NUMA=on, SNC=disable使用 NUMA-aware 調度器
AI 訓練 (單機多卡)NUMA=on, SNC=disable確保 GPU 與對應 NUMA 節點親和

七、結論

保持 NUMA 開啟 是現代雙路及以上服務器的首要原則,可顯著提升內存并發效率。 ?

SNC 是一把雙刃劍:在 已知內存訪問模式且高度局部化 的場景下啟用,可再挖掘 5~10 % 性能;否則保持關閉以獲得可預測的全局帶寬。 ?

Stream 與 MLC 的量化數據證明,任何 BIOS 調整都必須結合實際應用的 NUMA 親和策略,否則可能抵消硬件優化收益。

八、后續工作

1. 對 SNC4 (4 分區) 與異構 DIMM(Intel Optane PMem)組合進行復測。 ?

2. 引入 OS 層參數(transparent hugepages、zone_reclaim_mode)交叉驗證。 ?

3. 在 AMD EPYC 平臺 (NPS0/1/2/4) 上重復同一測試流程,完成跨平臺對比。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/95138.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/95138.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/95138.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java-113 深入淺出 MySQL 擴容全攻略:觸發條件、遷移方案與性能優化

點一下關注吧!!!非常感謝!!持續更新!!! 🚀 AI篇持續更新中!(長期更新) AI煉丹日志-31- 千呼萬喚始出來 GPT-5 發布!“快的…

Kafka Connect + Streams 用到極致從 CDC 到流處理的一套落地方案

關鍵目標: 零丟失:端到端 Exactly Once(Source 端事務 Streams exactly_once_v2 Sink DLQ)。低延遲:Producer 端批量壓縮 Streams 緩存 合理 poll/commit 間隔。可恢復:Connect/Streams 的 rebootstrap…

# `std::basic_istream`總結

std::basic_istream總結 文章目錄std::basic_istream總結概述常用類型定義全局對象核心成員函數1. 格式化輸入2. 非格式化輸入3. 流定位4. 其他功能繼承的功能來自 std::basic_ios狀態檢查狀態管理來自 std::ios_base格式化標志流打開模式特點說明例子std::basic_istream全面用…

人工智能——課程考核

課程考核包括平時測驗(75%)和討論(25%)兩個環節,測驗采用線上隨堂考試(2-3次,具體會在本課堂發布)重點考核:A*算法、極大極小過程(α-β剪枝)、不…

機器學習-時序預測1

最近面試過程中,Predict-then-Optimize是運籌優化算法工程師未來的發展方向。就像我之前寫過的運籌優化(OR)-在機器學習(ML)浪潮中何去何從?-CSDN博客,機器學習適合預測、運籌優化適合決策。我研…

vim-plugin AI插件

文章目錄一、vim 插件管理vim-plug二、如何使用和配置 vim-plug第 1 步:安裝 vim-plug第 2 步:配置你的 .vimrc / init.vim第 3 步:安裝插件常用 vim-plug 命令三、配置vim-aivim-aivim-deepseekvim升級四、配置 AI 插件GitHub Copilot第 1 步…

Adobe Photoshop 2025 最新下載安裝教程,附PS2025下載

點擊獲取:Adobe Photoshop 2025 安裝教程: 1、安裝包下載后,鼠標右鍵解壓安裝包 添加圖片注釋,不超過 140 字(可選) 2、雙擊打開解壓后的安裝包文件夾 3、打開setup文件夾 添加圖片注釋,不超過…

LeetCode算法日記 - Day 27: 計算右側小于當前元素的個數、翻轉對

目錄 1. 計算右側小于當前元素的個數 1.1 題目解析 1.2 解法 1.3 代碼實現 2. 翻轉對 2.1 題目解析 2.2 解法 2.3 代碼實現 1. 計算右側小于當前元素的個數 315. 計算右側小于當前元素的個數 - 力扣(LeetCode) 給你一個整數數組 nums &#xf…

基于SamOut的音頻Token序列生成模型訓練指南

通過PyTorch實現從音頻特征到語義Token的端到端序列生成,適用于語音合成、游戲音效生成等場景。🧠 模型架構與核心組件 model SamOut(voc_sizevoc_size, # 詞匯表大小(4098目錄名特殊Token)hidden_sizehidden_size, …

AWD攻防總結

基本防守策略 1、改用戶密碼和服務密碼 1)改linux用戶密碼: #passwd 如果有權限就刪除用戶: #userdel -r [用戶名] 2)改mysql密碼: #update mysql.user set passwordpassword(密碼) where userroot; 刪除匿名用戶&…

Android14 基于Configfs的USB動態配置init.usb.configfs.rc

1 Android14 USB子系統啟動以及動態切換的init.usb.rc 2 Android14 基于Configfs的USB動態配置init.usb.configfs.rc 3 Android14 高通平臺的USB子系統啟動和動態配置init.qcom.usb.rc 1. 什么是ConfigFS ConfigFS 是 Linux 內核提供的一種用戶空間可配置的偽文件系統在Linu…

2025年KBS SCI1區TOP,矩陣差分進化算法+移動網絡視覺覆蓋無人機軌跡優化,深度解析+性能實測

目錄1.摘要2.系統模型和問題表述3.矩陣差分進化算法4.結果展示5.參考文獻6.算法輔導應用定制讀者交流1.摘要 本文提出了一種面向無人機(UAV)新型軌跡優化方法,以實現對地面移動節點的高效視覺覆蓋。與傳統方法不同,該方法顯式考慮…

Python OpenCV圖像處理與深度學習:Python OpenCV圖像幾何變換入門

圖像變換:掌握OpenCV中的幾何變換 學習目標 通過本課程,學員們將能夠理解圖像的幾何變換原理,包括縮放、旋轉和平移,并能夠使用Python和OpenCV庫實現這些變換。本課程將通過理論講解與實踐操作相結合的方式,幫助學員們…

Redis Windows 7.0.5 安裝教程(附exe/msi下載+環境配置+命令測試)

?第一步:下安裝包? 打開瀏覽器(比如 Edge 或 Chrome),復制這個鏈接到地址欄敲回車: https://pan.quark.cn/s/31912e0d0443 進去后往下翻,找名字帶 ?**redis-7.0.5? 的文件,?選那個 .exe 結…

數據結構(單鏈表)

目錄 1.鏈表的概念及結構 2.單鏈表的應用 2.1 打印鏈表 2.2申請新節點 2.3插入(尾刪和頭刪) 2.4刪除(尾刪和頭刪) 2.5查找 2.6任意位置插入 2.7刪除指定位置的元素 2.8 銷毀鏈表 3.總結 1.鏈表的概念及結構 &#xff…

電腦沒加域卻能獲取到IP地址

企業網絡管理的核心邏輯!電腦沒加域卻能獲取到IP地址,這完全是一種刻意為之的安全設計,而不是網絡故障。 簡單來說就是:“給你IP,但不給你權限。” 這背后是一套完整的 網絡準入控制(NAC) 策略。…

Go語言入門學習筆記

📚 前言 歡迎學習Go語言!這份教材假設您是編程零基礎,從最基本的概念開始講解。Go語言(也稱為Golang)由Google開發,簡單、高效、并發能力強,適合后端開發、系統編程和云計算。 學習建議&#xf…

gradle安裝、配置環境變量、配置阿里源及idea 中配置gradle

下載gradle https://services.gradle.org/distributions/ 配置系統環境變量 新增GRADLE_HOME D:\Information_Technology\App\gradle-8.14.3-bin\gradle-8.14.3 新增GRADLE_USER_HOME D:\Information_Technology\App\gradleHouse 設置 path,新增一行 %GRADLE_…

C# FlaUI win 自動化框架,介紹

一、簡潔介紹 FlaUI 是一套基于 .NET 的 Windows 桌面應用自動化測試庫,支持 Win32、WinForms、WPF、UWP 等多種類型的應用。它基于微軟原生 UI Automation 庫,提供了更現代、易用的 API,適合自動化測試工程師和開發者實現高效、可維護的 UI …

命名空間級別應用 Pod 安全標準

🎯 命名空間級別應用 Pod 安全標準 一、創建 Kubernetes 集群(使用 kind) 使用 kind (Kubernetes IN Docker)快速創建一個本地集群: kind create cluster --name my-cluster驗證集群是否運行正常&#xff1…