Home
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
- π Read How It Works to understand the technical details
- π― Check out Project Goals to learn about the development direction
- π Browse Development History to understand technical challenges and solutions
- π οΈ Refer to API Documentation for development