Gthulhu
CPU 忙起來時,讓關鍵工作負載仍然跑得快
Gthulhu 是一個以 eBPF 與 Linux sched_ext 建構的 cloud-native runtime scheduling 平台。當 CPU contention 開始拖慢 Kubernetes workload 時,Gthulhu 會保護真正影響 latency 與 throughput 的 Linux tasks。
free5GC / 5G User Plane
平均 latency 降低 97.66%
CPU stress 下,UE 平均 ping latency 88.98 ms → 2.079 ms。
最大 latency 也從 130.95 ms → 8.45 ms。
vLLM / GPU Inference
Decode throughput 約提升 3.2×
CPU pressure 下,tg128 從 ~6.7 t/s → ~21.3 t/s,使用 Gthulhu + tiered scheduling policy。
此為可重現的 community benchmark,目前仍在 vLLM upstream blog review 中。
Gthulhu 解決什麼問題?
Kubernetes 可以把 workload 放到正確的 Node,也可以分配正確的資源;但這不代表 workload 裡真正重要的 Linux threads,在需要 CPU 時一定拿得到 CPU。
當系統出現 contention,GPU feeder、EngineCore、packet-processing workers、IRQ-related work 或其他 latency-sensitive tasks,都可能被背景 CPU workload 延遲。最後形成一個很直接的問題:資源已經分配了,SLO 還是沒達成。
Gthulhu 專注處理這個 execution gap。
1. Observe — 看見問題
用 eBPF 看清楚哪些 tasks 在等待、執行、migration,以及誰正在競爭 CPU。
2. Target — 找到真正重要的 task
把 Kubernetes workload intent 解析到實際影響服務的 Linux process / thread。
3. Control — 精準控制
利用 sched_ext 套用有邊界的 runtime scheduling policy,保護關鍵 execution path。
DRA chooses what and where. Gthulhu controls how it actually runs.
為 workload-aware runtime scheduling 而設計
-
Scheduling Observability
使用 eBPF 提供 Pod-level scheduling metrics,並整合 Prometheus 與 Grafana。
-
Fine-grained Control
對特定 workload、process,甚至非 leader worker thread 套用 scheduling intent;支援 TID-aware matching。
-
Cloud-native Operation
透過 Manager 與每節點 Decision Maker,把 scheduling intent 分散到 Kubernetes nodes。
-
SLO-oriented Automation
將 scheduler signals 接到 Prometheus、Grafana 與 KEDA,支援 runtime-aware operations 與 scaling。
下一步:Claim2Core
目前 Gthulhu 已能在 runtime 觀測與控制 Linux task scheduling。下一步,是把這個能力直接接到 Kubernetes 實際分配的資源。
Kueue / Workload API
↓
kube-scheduler / DRA
↓ ResourceClaim + topology
Gthulhu Runtime Plane
↓ Pod / cgroup / TGID / TID
sched_ext + eBPF
↓
Delivered workload SLO
核心原則很簡單:
ResourceSlice告訴我們有哪些資源。ResourceClaim.status.allocation告訴我們 workload 實際拿到了什麼。- Gthulhu 把 allocation 轉成可驗證的 runtime execution policy,並且不突破 Kubernetes 已建立的 CPU / resource boundary。