Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
4.4. RHEL 6 中,NUMA 的加強功能
RHEL 6 包括了多種加強功能,以善用現今高度可擴充系統的完整潛力。本節簡介了 RHEL 6 中,NUMA 最重要的效能加強功能。
4.4.1. 優化空機系統與可擴充能力
4.4.1.1. 感知拓樸的加強功能
以下加強功能能讓 RHEL 偵測低階硬體與架構的詳細資料,改善系統自動優化的能力。
- 增強偵測拓樸的功能
- 這允許作業系統偵測開機時,低階硬體的詳細資料(例如邏輯 CPU、hyperthread、核心、插槽、NUMA 節點、以及節點間的存取時間),以及對系統處理作優化。
- 完全公平排程器
- 這種新的排程模式能確保所有程序皆平等地共享執行時間。將這排程器與偵測拓樸功能相結合,能讓程序納入同樣插槽上的 CPU 之排程中,避免遠端存取記憶體而效能不彰,並儘可能的保留快取內容。
malloc
- 現在
malloc
已經優化,確保分配給一個程序的記憶體區域,會在實體位置上儘可能的接近程序所執行的 CPU 核心。這能加快存取記憶體的速度。 - 分配 skbuff I/O 緩衝區
- 跟
malloc
類似,這功能也已優化,以使用在實體位置上靠近 CPU 處理 I/O 運作(例如插斷)時的記憶體。 - 裝置插斷關聯
- 裝置插斷關聯(device interrupt affinity)是裝置驅動程式記錄的資訊,哪個 CPU 處理哪個插斷的資訊可以用來限制同樣插槽上的 CPU 之插斷處理,保留快取的關聯性,限制插槽間的大量通訊。
4.4.1.2. 多處理器同步的加強功能
要在多處理器之間協同任務,需要頻繁、耗時的操作,以確保同步執行的程序不會破壞資料的完整性。RHEL 包括了以下加強功能,以改進這一部分的效能:
- RCU 鎖
- 一般來說,90% 的鎖定都是為了達成唯讀的目的。RCU(Read-Copy-Update,讀取-複製-更新)鎖定機制,能移除存取非修改資料時,取得專一存取鎖定的需求。現在這鎖定模式可用在分配分頁快取記憶體時:現在鎖定模式僅用在分配或取消分配運作上。
- 針對單一 CPU 與單一插槽的演算法則
- 許多演算法則都已經更新,好在同樣插槽上的 CPU 進行鎖定協同作業時,允許更精細的鎖定。多種全域盤旋鎖(spinlock)已經被針對單一插槽的鎖定方式所取代,同時新的記憶體分配程式之區域、以及相關記憶體分頁清單,能讓記憶體分配邏輯在進行分配或取消分配運作時,更有效率地橫跨記憶體對應的資料結構之子集合。