项目简介
SchedCP 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在通过AI助手智能管理 Linux 内核调度器(基于 sched-ext 框架)。它提供 AI 驱动的调度器选择、工作负载分析、性能优化以及实时管理功能。
主要功能点
- AI 调度器选择: 根据自然语言描述的工作负载特征,智能推荐和选择最优调度器。
- 嵌入式调度器: 内置所有 sched-ext 调度器及其配置。
- 工作负载画像: 创建和管理带有执行历史记录的工作负载画像,支持自然语言描述。
- 实时管理: 动态启动、停止和监控 sched-ext 调度器。
- 性能跟踪: 捕获和分析不同工作负载下的调度器性能指标。
- 智能过滤: 按名称或生产就绪状态筛选调度器。
- MCP 集成: 与 AI 助手无缝集成,实现自动化优化。
安装步骤
- 环境准备: 确保您的系统满足以下条件:
- Linux 内核 6.12+ (支持 sched-ext)
- Clang/LLVM >= 16 (推荐 17)
- Rust 工具链 >= 1.82
- libbpf >= 1.2.2
- Meson 已安装
- 克隆仓库:
git clone https://github.com/eunomia-bpf/schedcp --recursive cd schedcp - 构建调度器:
cd scheduler make cd .. - 构建 MCP 服务器和 CLI 工具:
构建完成后,MCP 服务器的可执行文件位于 'mcp/target/release/schedcp'。cd mcp cargo build --release
服务器配置
SchedCP 服务器是为支持 MCP 客户端而设计的。您需要将以下配置添加到您的 MCP 客户端(如 Claude Desktop)的配置文件中,以便客户端能够发现并连接到 SchedCP 服务器。
{ "mcpServers": { "schedcp": { "command": "/path/to/schedcp/mcp/target/release/schedcp", "env": { "SCHEDCP_SUDO_PASSWORD": "您的sudo密码_如果需要" } } } }
- 'command': 指向 SchedCP 服务器可执行文件的完整路径。
- 'env': 包含服务器运行所需的特定环境变量。
- 'SCHEDCP_SUDO_PASSWORD': 如果您的系统需要 sudo 密码来管理调度器,请在此处提供。如果留空,服务器将尝试无密码 sudo。
基本使用方法
一旦 MCP 客户端配置并启动了 SchedCP 服务器,AI 助手就可以通过以下工具与服务器交互:
- 列出调度器: 'list_schedulers' - 获取所有可用调度器的详细信息,可按名称或生产就绪状态过滤。
- 运行调度器: 'run_scheduler' - 启动指定的调度器,并可传入自定义参数。
- 停止调度器: 'stop_scheduler' - 停止当前运行的调度器。
- 获取执行状态: 'get_execution_status' - 查看调度器执行的状态和输出。
- 管理工作负载画像: 'workload' (一个复合工具,支持子命令如 'create', 'list', 'get_history', 'add_history') - 创建、列出、查看历史记录以及为工作负载画像添加性能结果。
AI 助手将利用这些工具根据您的指令智能地管理和优化 Linux 内核调度器。
信息
分类
AI与计算