Update README.md
AITune 是一个基于 AI 的 Linux 系统参数自动调优系统,旨在解决传统调优依赖人工经验、效率低下、适应性差的问题。项目通过场景化抽象、数据驱动、动态自适应与持续进化四大理念,构建了一套可在生产环境落地的智能化调优体系。
本系统在国产操作系统 OpenKylin上进行开发与测试。与通用 Linux 内核相比,OpenKylin 暴露的可调参数数量更多(约 1200+ 项,相比 Ubuntu 多出 200 项),涵盖安全性、内存优化、I/O 调度等多个维度,为调优探索提供了更广阔的空间,也验证了系统在国产化平台上的可移植性与实用性。
在实验环节,AITune 分别对 Redis 与 MySQL 的典型负载场景进行了测试:
同时,AITune 本身的开销极低(CPU 与内存占用均 <5%),证明其在复杂业务环境中既能带来性能优化,又能保证生产可落地性。
项目说明详细文档和项目介绍ppt均在该目录下。
以下为本项目的架构图: AITune 系统采用 模块化分层架构,整体由 Collector、Tuner、Applier、Evaluator 核心模块组成,形成一个 采集—识别—调优—评估—沉淀 的闭环流程。
从多个维度对比传统方法与 AITune 系统,总结本项目的创新点与价值:
/proc
. ├── applier │ └── applier.py # 参数注入模块,将的 sysctl 参数应用到系统 ├── benchmark │ ├── bench_runner.py # 基准测试调度脚本,运行 Redis/MySQL 压测 │ ├── cpu_bound.py # 模拟 CPU 密集型负载 │ └── io_bound.py # 模拟 IO 密集型负载 ├── collector │ ├── collector_nolabel.sh # 采集系统指标(无标签模式,用于应用阶段) │ ├── collector.sh # 通用指标采集脚本 │ ├── collector_with_label.sh # 带任务标签的指标采集(用于训练阶段) │ └── ebpf │ ├── Makefile # eBPF 程序编译脚本 │ ├── page_fault.bpf.c # eBPF 脚本,采集缺页信息 │ ├── page_fault.c # 用户态程序,加载 page_fault eBPF │ ├── page_fault.h # page_fault eBPF 头文件 │ ├── sar.bpf.c # eBPF 脚本,采集系统调用/软中断统计 │ ├── sar.c # 用户态程序,加载 sar eBPF │ ├── sar.h # sar eBPF 头文件 │ ├── src # eBPF 依赖三方库、vmlinux │ └── tcp_retrain.bpf.c # eBPF 脚本,采集 TCP 重传事件 ├── config │ └── workload.conf # 各负载类型的 sysctl 参数搜索空间配置 ├── docs # 测试文档及调研文档 ├── evaluator │ ├── bench.py # 对压力测试任务的性能进行读取并评分 │ └── evaluator.py # 对系统性能进行读取并评分 ├── output │ ├── baseline_score.txt # 基准分数 │ ├── benchmark.log # 压力任务运行日志 │ ├── best_params.json.cpu_bound# CPU 负载下的最优参数记录 │ ├── best_params.json.io_bound # IO 负载下的最优参数记录 │ ├── classifier.pkl # 训练好的 XGBoost 分类器 │ ├── label_encoder.pkl # 分类标签编码器 │ ├── metrics.jsonl # 训练所用指标文件 │ ├── metrics_live.jsonl # 实时指标文件 │ ├── predict.log # 预测日志,记录分类结果 │ └── score.log # 性能得分日志 ├── README.md ├── requirements.txt ├── run.sh # 主运行脚本(采集/训练/应用入口) ├── test │ └── results_mysql │ ├── baseline # MySQL 基线性能结果 │ └── tuned # MySQL 调优后性能结果 ├── tuner │ ├── train.py # 使用采集数据训练分类模型 │ └── tuner.py # 调优器,调用模型预测并生成参数推荐 └── Visualization ├── aitune_grafana_dashboard.json # Grafana 面板配置文件 └── node_exporter.py # 指标导出脚本,写入 .prom 文件供 Prometheus 拉取
sudo apt update sudo apt install -y sysstat net-tools iproute2 jq stress fio libelf-dev pkg-config clang llvm libclang-dev
pip install -r requirements.txt # 安装依赖
bash run.sh -r bash run.sh -r -t 180 # 可以自行指定用来训练的数据的多少
bash run.sh -a # 开始调优
未来,AITune 可逐步扩展到 更多可调场景,比如大数据处理、AI 推理、流媒体服务,并引入 容器与硬件层的协同优化,实现端到端性能提升。同时,系统将探索 分布式与联邦调优,在多节点环境中共享优化经验,提升全局效率。随着知识库的不断积累,AITune 将具备更强的 自学习与自进化能力,真正成为智能化的系统优化平台。
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
基于AI的系统参数智能调优技术:AITUNE
🪪项目介绍
AITune 是一个基于 AI 的 Linux 系统参数自动调优系统,旨在解决传统调优依赖人工经验、效率低下、适应性差的问题。项目通过场景化抽象、数据驱动、动态自适应与持续进化四大理念,构建了一套可在生产环境落地的智能化调优体系。
本系统在国产操作系统 OpenKylin上进行开发与测试。与通用 Linux 内核相比,OpenKylin 暴露的可调参数数量更多(约 1200+ 项,相比 Ubuntu 多出 200 项),涵盖安全性、内存优化、I/O 调度等多个维度,为调优探索提供了更广阔的空间,也验证了系统在国产化平台上的可移植性与实用性。
在实验环节,AITune 分别对 Redis 与 MySQL 的典型负载场景进行了测试:
同时,AITune 本身的开销极低(CPU 与内存占用均 <5%),证明其在复杂业务环境中既能带来性能优化,又能保证生产可落地性。
项目说明详细文档和项目介绍ppt均在该目录下。
📺项目展示
⚒项目架构
以下为本项目的架构图:
AITune 系统采用 模块化分层架构,整体由 Collector、Tuner、Applier、Evaluator 核心模块组成,形成一个 采集—识别—调优—评估—沉淀 的闭环流程。

💡项目创新点
从多个维度对比传统方法与 AITune 系统,总结本项目的创新点与价值:
/proc文件系统,粗粒度,高开销🗲项目难点
⏩️项目完成程度
🏗︎项目仓库结构
🔛项目快速开始
安装命令
训练
预测+参数选择+调优
🔛项目展望
未来,AITune 可逐步扩展到 更多可调场景,比如大数据处理、AI 推理、流媒体服务,并引入 容器与硬件层的协同优化,实现端到端性能提升。同时,系统将探索 分布式与联邦调优,在多节点环境中共享优化经验,提升全局效率。随着知识库的不断积累,AITune 将具备更强的 自学习与自进化能力,真正成为智能化的系统优化平台。
🤍致谢