submit preliminary openKylin boot optimization project
# openkylin-boot-optimizer
openkylin-boot-optimizer 是面向 openKylin 桌面系统的启动性能分析与优化项目。项目重点是采集可复现的启动证据,分析 systemd 关键链路、失败服务和桌面相关异常,并在不破坏核心桌面功能的前提下给出可回滚优化方案。
当前阶段只整理已经完成的实验结果和复现说明,不继续执行新的系统优化动作。
项目通过 collect_boot_metrics.sh 采集每轮启动后的关键文件,结果保存到 results/<timestamp>。
collect_boot_metrics.sh
results/<timestamp>
典型输出包括:
total.txt
graphical.target
blame.txt
critical-chain.txt
boot.svg
journal-boot.txt
journal-boot-errors.txt
failed-units.txt
key-services.txt
dm-graphical-timing.txt
metadata.json
初始 baseline 样本 results/20260603-163707:
results/20260603-163707
kylin-core-dump-monitor.service
baseline critical-chain 显示 strongswan-starter.service 曾位于图形目标到达前的关键链路上。禁用 strongSwan 后可以移除该 VPN/IPsec 节点,但多轮实验中 total 时间收益不稳定,因此 strongSwan 只作为场景化可选优化项。
critical-chain
strongswan-starter.service
恢复 strongSwan 后的多轮 baseline 中,20260603-202658 是异常样本:userspace 为 95.136s,total 为 97.183s,但 graphical.target 仍为 4.852s。journal 指向 ukui-system-service-manager、D-Bus、pulseaudio、portal 接口 timeout,因此该样本应单独分析,不纳入常规均值。
20260603-202658
ukui-system-service-manager
问题现象:
kylin-core-dump-monitor.service loaded failed failed
systemctl status
Result=start-limit-hit
Start request repeated too quickly
ExecStart
0/SUCCESS
Restart=always
根因判断:
脚本本身不是崩溃退出,而是正常完成后被 Restart=always 反复拉起,最终触发 systemd 的启动频率限制。
修复方式:
通过 systemd drop-in override 调整重启策略:
[Service] Restart=on-failure RestartSec=30s
优化后结果:
当前主成果是 failed-units 从 1 个稳定降到 0 个,属于启动健康状态优化和异常服务治理。启动时间有所提升。
failed-units
strongswan-starter.service 是 VPN/IPsec 相关服务。实验显示,禁用它可以从 critical-chain 中移除 VPN/IPsec 节点,但多轮 total 时间收益不稳定:
因此,strongSwan 不作为默认自动优化。只有在用户明确不使用 IPsec/VPN 时,才可以作为手动确认后的可选项。
默认优化策略禁止自动修改以下核心服务和目标:
display-manager
lightdm
dbus
NetworkManager
systemd-logind
polkit
accounts-daemon
项目可以分析这些服务的耗时和日志,但不通过禁用核心桌面功能来换取指标改善。
最终 zip 包包含以下内容:
src/
scripts/
configs/
docs/
reports/
tests/
results/
screenshots/
当前主成果是 kylin-core-dump-monitor.service 的异常重启策略修复,使 failed-units 从 1 个稳定降为 0 个。该成果属于启动健康状态优化,不写成“启动时间大幅提升”。
为了继续提升工具链能力,后续可以扩展:
reporter.py
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
# openkylin-boot-optimizer
openkylin-boot-optimizer 是面向 openKylin 桌面系统的启动性能分析与优化项目。项目重点是采集可复现的启动证据,分析 systemd 关键链路、失败服务和桌面相关异常,并在不破坏核心桌面功能的前提下给出可回滚优化方案。
当前阶段只整理已经完成的实验结果和复现说明,不继续执行新的系统优化动作。
工具链
项目通过
collect_boot_metrics.sh采集每轮启动后的关键文件,结果保存到results/<timestamp>。典型输出包括:
total.txt:kernel、userspace、total 和graphical.target到达时间。blame.txt:systemd unit 耗时排序。critical-chain.txt:目标到达前的关键依赖链。boot.svg:启动时序图。journal-boot.txt:当前启动日志。journal-boot-errors.txt:错误、告警和 timeout 线索。failed-units.txt:启动后失败的 unit。key-services.txt:关键服务状态。dm-graphical-timing.txt:显示管理器与图形目标时序。metadata.json:采集元数据。当前实验结果摘要
初始 baseline 样本
results/20260603-163707:graphical.targetkylin-core-dump-monitor.servicebaseline
critical-chain显示strongswan-starter.service曾位于图形目标到达前的关键链路上。禁用 strongSwan 后可以移除该 VPN/IPsec 节点,但多轮实验中 total 时间收益不稳定,因此 strongSwan 只作为场景化可选优化项。恢复 strongSwan 后的多轮 baseline 中,
20260603-202658是异常样本:userspace 为 95.136s,total 为 97.183s,但graphical.target仍为 4.852s。journal 指向ukui-system-service-manager、D-Bus、pulseaudio、portal 接口 timeout,因此该样本应单独分析,不纳入常规均值。已验证优化案例
主优化案例:kylin-core-dump-monitor.service
问题现象:
failed-units.txt显示kylin-core-dump-monitor.service loaded failed failed。systemctl status显示Result=start-limit-hit和Start request repeated too quickly。ExecStart脚本以0/SUCCESS正常退出。Restart=always。根因判断:
脚本本身不是崩溃退出,而是正常完成后被
Restart=always反复拉起,最终触发 systemd 的启动频率限制。修复方式:
通过 systemd drop-in override 调整重启策略:
优化后结果:
graphical.target当前主成果是
failed-units从 1 个稳定降到 0 个,属于启动健康状态优化和异常服务治理。启动时间有所提升。场景化可选案例:strongSwan
strongswan-starter.service是 VPN/IPsec 相关服务。实验显示,禁用它可以从critical-chain中移除 VPN/IPsec 节点,但多轮 total 时间收益不稳定:graphical.target因此,strongSwan 不作为默认自动优化。只有在用户明确不使用 IPsec/VPN 时,才可以作为手动确认后的可选项。
安全边界
默认优化策略禁止自动修改以下核心服务和目标:
display-managerlightdmdbusNetworkManagersystemd-logindpolkitaccounts-daemonukui-system-service-managergraphical.target项目可以分析这些服务的耗时和日志,但不通过禁用核心桌面功能来换取指标改善。
文档
提交包内容
最终 zip 包包含以下内容:
src/:Python 分析、优化建议和报告生成源码。scripts/:启动数据采集、桌面可用性检测、验证与回滚脚本。configs/:安全服务黑名单和优化规则配置。docs/:比赛报告、实验方法和优化策略文档。reports/:报告模板。tests/:单元测试。results/:已采集实验结果。screenshots/:baseline、优化前后、异常样本和实验环境截图证据。当前主成果是
kylin-core-dump-monitor.service的异常重启策略修复,使failed-units从 1 个稳定降为 0 个。该成果属于启动健康状态优化,不写成“启动时间大幅提升”。后续扩展方向
为了继续提升工具链能力,后续可以扩展:
reporter.py,自动读取多个results/目录并生成对比图表。