目录
codex/agent-analysis-workflow-20260729

赛题题目:openKylin 操作系统启动性能分析与优化(社区赛题)

赛题说明

客户端 Linux 操作系统在日常使用中,系统冷启动、登录进入桌面、常用服务初始化等环节的耗时直接影响用户体验。赛题要求参赛者基于 openKylin 操作系统分析启动过程,识别关键耗时路径,并通过服务裁剪、启动顺序优化、并行初始化优化、无效等待消除等方式提升启动效率,同时保证系统功能完整、图形登录可用和桌面环境正常。

赛题的核心挑战不只是“缩短启动时间”,还包括:

  1. 在不破坏 openKylin 默认客户端体验的前提下,识别真正影响启动时延的关键因素;
  2. 建立从内核启动、systemd 服务、显示管理器、桌面会话到用户可感知“系统可用”的全过程分析方法;
  3. 形成可解释、可复现、可推广的优化方案,而不是只针对单一机器进行特例化调整。

赛题鼓励结合依赖图建模、启动时序分析、自动化测试框架和 AI/Agent 辅助分析,提高方案的创新性与工程实用性。

赛题要求

  • 基于 openKylin 客户端系统开展优化,方案应具备可迁移性;
  • 可使用任意 x86 笔记本、台式机或虚拟机,不依赖专有硬件;
  • 至少覆盖内核启动完成至图形登录界面就绪、用户登录后至可用桌面两个阶段;
  • 默认不计 BIOS/UEFI 自检、固件和 GRUB 菜单等待时间,须明确计时起点与方法;
  • 登录界面应可交互,基础服务正常,用户可以发起登录;
  • 可用桌面应完成核心界面加载,常用应用及网络、声音、输入法等基础能力可用;
  • 不得通过关闭图形登录、移除必要能力、牺牲桌面基本功能或制造明显首用卡顿规避问题;
  • 给出优化前后的量化对比,覆盖启动总时长、关键服务、登录界面及桌面就绪等指标;
  • 提交代码、配置、测试脚本、分析报告和复现说明;
  • 鼓励补充其他主流 x86 Linux 客户端发行版的迁移或兼容性说明。

评分细则

评审项 分值
启动性能收益 25
功能正确性与系统稳定性 20
分析深度与方法创新性 25
openKylin 适配质量与跨发行版泛化能力 20
工程质量与可复现性 10

赛题联系人:杨老师(yangjiguo@hygon.cn

参赛资源支持:openKylin 标准镜像。


KylinBoost(麟速)

KylinBoost 是面向 openKylin 2.0 SP2 桌面系统的启动性能智能分析与优化系统。项目没有把启动优化简化为耗时排序或服务裁剪,而是建立了“分级采集—数据准入—Agent 分析—人工审批—安全执行—多轮验证—结果回流”的完整闭环。

系统贯通 Kernel、systemd、LightDM 和 UKUI 用户会话,以统一数据契约组织多源证据;Agent 只能读取经过筛选的数据包并生成证据化报告和待审批候选方案,不直接修改被测系统。

系统总体架构

核心能力

  • 跨层启动阶段模型: 除 Kernel、Userspace 和 Graphical 外,引入 Login-Ready 与 Desktop-Core-Ready,关注用户可用状态。
  • 关键路径分析: 结合阶段指标、critical-chain、journal、LightDM/UKUI 日志和桌面探针定位瓶颈,不把 blame 排名直接当作根因。
  • 可信数据管理: 实验登记、样本封存、质量准入、环境指纹和 Agent 数据包保证证据来源与对照关系可追溯。
  • 受约束 Agent: 统一工作流、证据分级、结果 Schema 和报告模板约束输入、结论及候选操作。
  • 安全优化闭环: 注册操作、人工审批、状态快照、参数化应用、事务回滚、功能检查和多轮对照相互衔接。
  • 双环境验证: clean 环境检验基础闭环,包含 28 个可回滚模拟服务的复杂环境检验串行依赖和资源竞争下的瓶颈识别能力。

当前项目状态

项目已完成数据采集、数据管理、Agent 分析、优化执行和验证模块的主体实现,并完成 clean 环境与模拟复杂环境各 5 轮基线、5 轮优化的阶段性实验。

环境 指标 基线均值/s 优化均值/s 缩短/s 改善率
clean Total 7.856 5.387 2.469 31.4%
clean Graphical 3.513 2.177 1.336 38.0%
clean Desktop-Core-Ready 19.184 15.020 4.164 21.7%
模拟复杂 Total 7.387 5.719 1.668 22.6%
模拟复杂 Graphical 3.987 2.981 1.006 25.2%
模拟复杂 Desktop-Core-Ready 18.306 17.176 1.130 6.2%

clean 环境中,主要可压缩路径涉及网络在线等待、VPN 服务、非核心后台服务和 LightDM 会话同步任务;模拟复杂环境中,系统识别并移除了进入 graphical.target 前关键路径的模拟 Docker、containerd、kubelet 串行依赖。

这些结果仅表示当前场景下的组合优化趋势:

  • 每组只有 5 轮有效样本,尚不足以形成最终统计结论;
  • 多项调整同时应用,不能把组合收益拆分归因到单项操作;
  • clean 环境计划中的部分内核参数未实际进入优化样本,Kernel 变化不能归因于这些参数;
  • 模拟负载用于验证方法能力,不能代替真实用户环境;
  • 完整功能回归、自动回滚验收、单因素实验和每组至少 10 轮的核心对照仍待完成。

详细实验设计、证据边界和结果解释见项目说明书第四章。

项目结构

.
├── bin/boot-lab          统一命令入口
├── collectors/           轻量、完整和专项采集
├── data-manager/         实验登记、样本验收、目录和 Agent 数据包
├── agent-analysis/       阶段模型、工作流、规则、Schema 和报告模板
├── optimization/         注册优化、状态检查、应用、备份和回滚
├── validation/           冷启动控制、多轮对照和功能验证
├── simulation/           模拟复杂服务环境
├── data/unified/         统一实验数据
├── data/catalog/         可重新生成的数据目录和 Agent 数据包
└── result/               已生成的实验分析结果

模块与说明书章节的对应关系见代码结构与模块边界

快速开始

bin/boot-lab 是统一入口,应在 Linux/openKylin 环境的项目根目录中执行:

bin/boot-lab --help
bin/boot-lab model

查看和管理数据

# 重建可再生数据目录
bin/boot-lab data scan

# 列出、查看和校验数据集
bin/boot-lab data list
bin/boot-lab data show unified/clean-baseline
bin/boot-lab data validate unified/clean-baseline

# 查看采集配置及证据用途
bin/boot-lab data plan continuous_lightweight
bin/boot-lab data plan full_boot

data scan 只重建 data/catalog/,不会修改 data/unified/ 中封存的原始证据。

生成 Agent 分析任务

bin/boot-lab data agent-export unified/clean-baseline

bin/boot-lab agent prepare \
  data/catalog/agent/unified--clean-baseline.json \
  --type preliminary \
  --output data/catalog/agent/unified--clean-baseline-task.md

随后使用仓库的 boot-performance-analysis Skill 执行任务。Agent 必须遵守 agent-analysis/workflow.md,生成结构化结果与 Markdown 报告,然后校验:

bin/boot-lab agent validate \
  data/catalog/agent/unified--clean-baseline-report.md \
  --package data/catalog/agent/unified--clean-baseline.json \
  --type preliminary

完整分析应承接初步报告及其证据缺口:

bin/boot-lab agent prepare \
  data/catalog/agent/unified--clean-baseline.json \
  --type full \
  --output data/catalog/agent/unified--clean-baseline-full-task.md

bin/boot-lab agent validate \
  data/catalog/agent/unified--clean-baseline-full-report.md \
  --package data/catalog/agent/unified--clean-baseline.json \
  --type full

登记并采集数据

新实验必须先登记。普通观察可使用轻量采集:

bin/boot-lab data register-dataset lightweight/device-a \
  --title "设备 A 常态观察" \
  --batch device-a-20260729 \
  --role observation \
  --boot-type unclassified \
  --environment-id device-a-openkylin-sp2 \
  --report-scope diagnostic \
  --profile continuous_lightweight

bin/boot-lab collect lightweight device-a

正式冷启动实验应登记 cold_boot 并使用完整采集:

bin/boot-lab data register-dataset unified/case-a \
  --title "设备 A 完整基线" \
  --batch device-a-20260729-full \
  --role baseline \
  --boot-type cold_boot \
  --environment-id device-a-openkylin-sp2 \
  --report-scope primary \
  --profile full_boot

sudo bin/boot-lab collect full case-a --init -n 5

完整采集初始化会安装 systemd 和用户会话采集钩子,不是一次性的只读命令。

优化、模拟与验证

查看状态不会修改系统:

sudo bin/boot-lab optimize list
sudo bin/boot-lab optimize status

以下操作会改变被测系统,只能在确认实验对象、人工审批和回滚条件后执行:

sudo bin/boot-lab optimize apply 3,4,5
sudo bin/boot-lab optimize rollback all

sudo bin/boot-lab simulate
sudo bin/boot-lab simulate --clean

已配置 VMware 虚拟机时,可执行多轮冷启动对照:

bin/boot-lab validate cold-boot \
  --vmx /path/to/openkylin.vmx \
  --configs clean-baseline,clean-opt345 \
  -n 5

数据与分析原则

  • data/unified/ 中的原始证据封存后不改写;
  • 数据集必须登记批次、实验角色、启动类型、采集配置和允许比较的对照组;
  • quality=valid 的轮次进入正式统计,无效和缺失数据仍保留记录;
  • Agent 只读取 agent-export 生成的限定数据包;
  • perf 等高扰动专项轮次只用于归因,不用于计算最终启动收益;
  • 只有合法、低扰动且可比的对照数据才能支撑收益结论;
  • Agent 生成报告和候选方案,不取得系统修改权限;
  • 候选方案必须经人工审批,并通过功能检查、性能复测和回滚验证。

文档索引

关于
411.5 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号