阿里巴巴的 Linux 核心維護者(王贇)近日在郵寄清單了一個新提案,主題是為 Linux 核心排程器引入 Group Balancer。
據介紹,這個提案的背景是越來越多的組織/公司會選擇將其伺服器設定為在應用程式之間共用 CPU 核心/資源,而不是將 CPU 核心專門分配給單個應用程式/任務。Group Balancer 正是專注於在任務之間共用資源時減少資源衝突。此平衡器專注於跨 CPU 核心組平衡各種任務。
王贇總結道,我們需要一種在共用模式下,緩解衝突的方法,並使任務組儘可能獨佔,以獲得效能和資源效率。Group Balancer 的主要思想是通過在 CPU 組之間平衡任務組來滿足此要求,可將其視為動態半獨佔模式 (dynamic semi-exclusive mode)。就像在 CPU 之間平衡任務一樣,現在有了 GB,使用者可以將 CPU X、Y、Z 分成三個分割區,並將 A、B、C 任務組平衡分配到這些分割區中,使它們儘可能獨佔。該設計非常接近 numa 平衡,任務觸發器的工作將其分組到適當的分割區(最小預測負載),然後嘗試將自身遷移到其中。
阿里巴巴在 128 核 CPU 伺服器上的基準測試發現,與標準共用模式相比,Redis 效能在 GB 模式下提升了 2~10%。