信創升級面臨性能短板
信創升級浪潮正席卷各行業,信創虛擬化、超融合及云平臺被廣泛應用于承載核心業務。這些核心業務對云平臺的性能和穩定性要求極高。然而,簡單的信創升級常伴隨著性能下滑和穩定性欠佳等問題,極大地影響了改造效果。
以金融行業高頻訂單處理系統,工業自動化控制系統,醫療行業HIS系統與PACS系統,以及智能交通管理系統為例,這些對搶占調度要求高的業務系統,對云平臺的計算能力、存儲性能和數據處理速度的要求不斷攀升。
在主流服務器采用的NUMA CPU 架構下,系統包含多個NUMA節點,每個節點又有多個CCX(Core Complex的縮寫,即緩存一致性復合體)。該架構下,如何優化CPU調度,提升虛擬機性能,成為信創高質量升級的關鍵課題。
本文將以海光CPU架構為切入點,深入剖析 CCX 對虛擬機性能提升的影響機制,并提出切實可行的性能提升方案。
海光CPU架構關鍵技術解析
NUMA架構特性:多處理器系統基石
隨著處理器技術逐漸逼近物理極限,多處理器集成技術應用而生,NUMA 架構憑借獨特的設計理念,為提升系統性能開辟了新的方向。
NUMA(Non-Uniform Memory Access,非統一內存訪問)作為一種多處理器系統架構,將內存和處理器劃分為多個獨立節點。當進程訪問本地NUMA內存時,時延低;而經QPI總線訪問遠端內存時,時延顯著增加。這一特性使得進程優先在本地節點分配內存,便于通過增加節點擴展內存和處理能力。這種架構適用于數據中心、高性能計算集群等大規模多處理器系統。
NUMA架構
CCX模塊:協同計算的核心單元
CCX作為系統進行任務分配和處理的基本單元之一,源自AMD 在 Zen 架構,海光 C86 系列CPU延續了這一設計。每個CCX整合多個處理器核心,同一 CCX 內核心共享 L3 緩存,可減少約 15-20ns的跨核心數據訪問延遲。通常一個NUMA包含2個CCX,每個CCX 集成 4 個 CPU 核心,這種模塊化設計可靈活擴展核心數,從16 核到 64 核,滿足不同場景需求。
CCX模塊
跨CCX運行:降低了存儲性能
線程是 CPU 調度的基本單位,其執行效率與緩存訪問特性密切相關。同一 CCX 內,線程能夠借助本地L3緩存,實現高效的數據交互。
然而在實際運行中,Linux內核會根據 CCX 負載和內存訪問模式,動態調整線程在不同 CCX 間的分配。這雖提升了系統級資源利用率,但可能導致存儲虛擬化工作線程分散到不同CCX(如圖①-②所示),造成跨CCX緩存失效和遠端訪存,最終降低了存儲性能。
跨CCX模塊運行
那么,如何破解這一難題,成為提升系統性能的關鍵。
深信服CCX軟親和調度,解鎖性能新高度
面對CCX調度難題,深信服信創超融合推出軟親和調度機制,實時監測業務負載變化,實現CPU資源的動態分配:
1.低負載場景:當CPU負載較低時,優先使用軟親和范圍內的CPU,充分發揮資源訪問的局部性優勢,降低調度開銷;
2.高負載場景:當CPU負載較高時,則會突破軟親和范圍的限制,增加CPU資源供給,保證業務服務質量不受影響。
在C86場景下,深信服基于軟親和調度機制,頻繁交互的存儲服務線程進行CCX調度精細化編排:
1.CCX 利用率低時,聚合線程降時延:當CCX范圍內CPU利用率低于特定閾值,將存儲線程聚合在CCX內(如圖③所示),降低通信時延,提升IO性能;
2.CCX 利用率高時,分散線程保吞吐:當CCX范圍內CPU利用率高于特定閾值,允許存儲線程在更大CPU范圍內運行,避免資源爭搶,減少通信延遲,保障系統吞吐。
深信服軟親和調度機制
這一優化策略,顯著提升了小塊性能,IOPS提高約20%,為用戶帶來了更高效的使用體驗。
小塊性能提升20%
深信服 CCX 軟親和調度 VS 傳統方案
相較于業界其他方案,深信服的軟親和調度機制展現出顯著優勢:
傳統調度方案的局限
業界多普遍依賴操作系統原生調度器CFS的通用負載均衡算法,缺乏對CCX拓撲層級的深度適配,導致跨CCX線程通信需頻繁穿透L3緩存層級,影響系統性能。
加之,部分廠商采用硬親和性綁定策略,雖避免了跨CCX開銷,但犧牲了調度彈性。當綁定的CCX內運行高優先級計算任務時,容易引發資源爭搶面臨饑餓風險。
深信服軟親和調度機制
深信服通過為操作系統調度器提供CPU拓撲和負載指導信息,輔助系統做出更合理的調度決策,靈活調整CPU資源供給,實現低負載場景降時延,高負載場景保吞吐的效果,實現了性能與靈活性的平衡。