跳转至内容

Bootchart

来自 ArchWiki

Bootchart 是一个用于分析 Linux 引导序列的实用工具,通常用于加快计算机的启动速度。它包含 bootchartd 守护进程,该守护进程会记录并渲染分析数据的图表。

注意 Bootchart 的一个等效功能现在已集成到 systemd 中,有关详细信息,请参阅 Improve boot performance#Analyzing the boot process。本页介绍的是在合并之前原始的 bootchart 和 bootchart2(init 守护进程)。

安装

安装 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秒内完成引导

LWN 关于快速启动上网本的文章

这篇文章非常棒,并且附带了许多引导图,提供了一些关于如何加快启动速度的技巧。然而,其中一些改进对于普通用户来说是难以实现的(例如,修补 X.org、内核等)。

Bootchart2

注意 Bootchart 的一个替代方案是 bootchart2。它使用 Python 而不是 JVM 来生成最终图表,并且只需要:pygtk、git 和 busybox。

运行 Bootchart2

引导加载程序设置

这通常涉及复制您要分析的引导选项,并为其添加 initcall_debug printk.time=y init=/usr/bin/bootchartd2。有关说明,请参阅 kernel parameters。当从引导加载程序启动时,bootchart2 将在默认的 120 秒后停止,或者在您到达登录提示符时停止(反之亦然)。请注意,Bootchart2-git 也可以作为 systemd 服务运行,如 Improve boot performance#Using bootchart2 中所述。

bootchart2.service

来自 AURbootchart2AUR 包自带了一个未文档化的 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