Bootchart
Bootchart 是一个用于分析 Linux 引导序列的实用工具,通常用于加快计算机的启动速度。它包含 bootchartd 守护进程,该守护进程会记录并渲染分析数据的图表。
安装
安装 bootchartAUR 包。
用法
要使用 bootchart,您必须将其设置为引导加载程序中的 init 进程。请注意,如果您手动启动 bootchartd,也必须手动停止它。总的来说,在此步骤中要格外小心。
引导加载程序设置
这通常涉及复制您要分析的引导选项,并为其添加 init=/usr/bin/bootchartd。有关说明,请参阅 kernel parameters。当从引导加载程序启动时,bootchart 会在您到达登录提示符时停止。
生成图表
生成 bootchart 需要在您有写入权限的文件夹中运行 bootchart-render。这将生成一个包含您的图表的 bootchart.png 图像。您必须已安装 Java 运行时并正确设置才能执行此操作。
故障排除
Bootchart-render 无法生成 bootchart.png 图像并显示错误消息
/var/log/bootchart.tgz not found
这通常意味着 bootchartd 无法检测到引导过程何时完成。当您使用 GDM 以外的登录管理器(如 SLiM 或 entrance)时,可能会发生这种情况。您必须打开 /usr/bin/bootchartd 脚本并将这些应用程序添加到 exit_proc 变量中,例如
# The processes we have to wait for local exit_proc="gdmgreeter gdm-binary slim"
如果您不使用任何登录管理器,请按此方式编辑 exit_proc 变量
# The processes we have to wait for local exit_proc="login"
示例引导图
5秒内完成引导
这篇文章非常棒,并且附带了许多引导图,提供了一些关于如何加快启动速度的技巧。然而,其中一些改进对于普通用户来说是难以实现的(例如,修补 X.org、内核等)。
Bootchart2
运行 Bootchart2
引导加载程序设置
这通常涉及复制您要分析的引导选项,并为其添加 initcall_debug printk.time=y init=/usr/bin/bootchartd2。有关说明,请参阅 kernel parameters。当从引导加载程序启动时,bootchart2 将在默认的 120 秒后停止,或者在您到达登录提示符时停止(反之亦然)。请注意,Bootchart2-git 也可以作为 systemd 服务运行,如 Improve boot performance#Using bootchart2 中所述。
bootchart2.service
来自 AUR 的 bootchart2AUR 包自带了一个未文档化的 systemd 服务。安装 bootchart2 后,请 启用 bootchart2.service。
您可以通过打开 /var/log/bootchart.png 来可视化结果,或者如果您想要更多功能,可以通过启动
$ pybootchartgui -i
阅读 bootchart2 documentation 以获取有关使用此版本的 Bootchart 的更多详细信息。
配置 Bootchart2
登录后停止 Bootchartd2
Bootchart2 配置文件可以进行调整
/etc/bootchartd2.conf
EXIT_PROC="xterm konsole gnome-terminal metacity mutter compiz ldm icewm-session enlightenment"
也可以将其留空,以便在预定的程序启动之前手动停止日志记录。
生成图表
使用 Bootchart2 进行操作与使用 Bootchart Legacy 一样简单:引导后,运行
$ pybootchartgui -i
以获得交互式图表渲染工具。有关更多信息,请参阅 Gentoo:Bootchart2。