Skip to content

Home

cncf landscape

LFX Health Score

Welcome to the official website of Gthulhu. This site provides detailed information about Gthulhu, an advanced Linux scheduler designed to optimize cloud-native workloads based on the Linux Scheduler Extension (sched_ext) framework.

πŸ“° Latest News

Gthulhu joins CNCF Landscape

Gthulhu is now part of the CNCF (Cloud Native Computing Foundation) Landscape, joining the ecosystem of cloud-native technologies.

Gthulhu joins eBPF Application Landscape

Gthulhu has been added to the eBPF Application Landscape, recognized as an innovative eBPF-based scheduling solution.

Overview

Gthulhu aims to provide an orchestrable distributed scheduler solution for the cloud-native ecosystem, meeting the dynamic and diverse requirements of cloud-native applications, such as:

  • Trading systems that require low-latency processing capabilities
  • Big data analytics that need high-throughput computing resources
  • Machine learning tasks that require flexible resource allocation

The default Linux kernel scheduler emphasizes fairness and cannot be optimized for the specific needs of different applications. Furthermore, when these applications run in distributed architectures, traditional schedulers often fail to effectively coordinate and allocate resources, leading to performance bottlenecks and resource waste.

Architecture Overview

To enable users to easily transform their intents into scheduling policies, Gthulhu provides an intuitive interface that allows users to communicate using machine-readable languages (such as JSON) or through AI agents with MCP. Behind these interfaces, several key components work together:

1. Gthulhu API Server (Manager Mode)

The Manager accepts policy requests from users and transforms them into specific scheduling intents.

$ curl -X POST http://localhost:8080/api/v1/strategies \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <TOKEN>" \
  -d '{            
    "strategyNamespace": "default",
    "labelSelectors": [
      {"key": "app.kubernetes.io/name", "value": "prometheus"}
    ],
    "k8sNamespace": ["default"],
    "priority": 10,
    "executionTime": 20000000
  }'

The example above demonstrates how to send a scheduling policy request to the Gthulhu API Server using the curl command. Upon receiving the request, the Manager attempts to select Pods from the Kubernetes cluster that match the label selectors and adjusts the scheduling policies for these Pods based on the specified priority and execution time.

2. Gthulhu API Server (Decision Maker Mode)

The Decision Maker runs as a sidecar alongside the Gthulhu Scheduler on each node in the cluster, identifying target Process(es) based on the scheduling intents sent by the Manager.

3. Gthulhu Scheduler

Each node in the Kubernetes cluster runs a Gthulhu Scheduler, which is responsible for monitoring system resource usage and periodically obtaining scheduling decisions from the Decision Maker. Based on these decisions, the Gthulhu Scheduler adjusts the CPU time and priority of target Process(es).

The Gthulhu Scheduler can be further divided into two parts:

  • Gthulhu Agent: Responsible for interacting with the Linux Kernel's sched_ext framework and applying scheduling decisions.
  • Qumun Framework: Provides the underlying eBPF code and related tools, ensuring that the Gthulhu Agent can efficiently communicate with the Linux kernel.

The diagram below illustrates the overall architecture of Gthulhu:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                              Gthulhu Architecture                               β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                                 β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚   β”‚    User     β”‚ ──────▢ β”‚      Manager        β”‚ ──────▢ β”‚    MongoDB      β”‚   β”‚
β”‚   β”‚  (Web UI)   β”‚         β”‚ (Central Management)β”‚         β”‚  (Persistence)  β”‚   β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                      β”‚                                          β”‚
β”‚                                      β”‚                                          β”‚
β”‚              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                  β”‚
β”‚              β”‚                       β”‚                       β”‚                  β”‚
β”‚              β–Ό                       β–Ό                       β–Ό                  β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”           β”‚
β”‚   β”‚ Gthulhu Agent & β”‚     β”‚ Gthulhu Agent & β”‚     β”‚ Gthulhu Agent & β”‚           β”‚
β”‚   β”‚ Decision Maker  β”‚     β”‚ Decision Maker  β”‚ ... β”‚ Decision Maker  β”‚           β”‚
β”‚   β”‚   (Node 1)      β”‚     β”‚   (Node 2)      β”‚     β”‚   (Node N)      β”‚           β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜           β”‚
β”‚            β”‚                       β”‚                       β”‚                    β”‚
β”‚            β–Ό                       β–Ό                       β–Ό                    β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”           β”‚
β”‚   β”‚  sched_ext      β”‚     β”‚  sched_ext      β”‚     β”‚  sched_ext      β”‚           β”‚
β”‚   β”‚ (eBPF Scheduler)β”‚     β”‚ (eBPF Scheduler)β”‚     β”‚ (eBPF Scheduler)β”‚           β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜           β”‚
β”‚                                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

After understanding the overall architecture of Gthulhu, we can see more clearly how each component works together to achieve efficient cloud-native workload scheduling.

DEMO

Click the link below to watch our DEMO on YouTube!

Product Roadmap

timeline
        title Gthulhu 2025 Roadmap
        section 2025 Q1 - Q2 
Gthulhu -- bare metal scx_goland (qumun) : β˜‘οΈ 7x24 test : β˜‘οΈ CI/CD pipeline Gthulhu : β˜‘οΈ CI/CD pipeline : β˜‘οΈ Official doc K8s integration : β˜‘οΈ Helm chart support : β˜‘οΈ API Server section 2025 Q3 - Q4
Cloud-Native Scheduling Solution Gthulhu : β˜‘οΈ plugin mode : β˜‘οΈ Running on Ubuntu 25.04 K8s integration : β˜‘οΈ Container image release : β˜‘οΈ MCP tool : Multiple node management system Release 1 : β˜‘οΈ R1 DEMO (free5GC) : β˜‘οΈ R1 DEMO (MCP) : R1 DEMO (Agent Builder)

License

This project is licensed under the Apache License 2.0.

Community & Support

  • GitHub: Gthulhu | Qumun
  • Issue Reporting: Please report issues on GitHub Issues
  • Feature Requests: Welcome to submit Pull Requests or open Issues for discussion
  • Media Coverage: Check out Media Coverage & Mentions to see project impact

Next Steps