Bootchart

出自 ArchWiki

Bootchart 是一个方便的工具,用于分析 Linux 启动序列,通常用于加快计算机启动速度。它由 bootchartd 守护进程组成,该守护进程记录并呈现分析数据的图表。

注意: Bootchart 的等效功能现在是 systemd 的一部分,有关详细信息,请参阅改善启动性能#分析启动过程。本页介绍合并之前的原始 bootchart 和 bootchart2 (init 守护进程)。

安装

安装 bootchartAUR 软件包。

用法

要使用 bootchart,您必须将其设置为启动引导程序中的 init 进程。请注意,如果您手动启动 bootchartd,则也必须手动停止它。通常,对此步骤要格外小心。

启动引导程序设置

这通常涉及复制您要分析的启动选项,并在其中添加 init=/usr/bin/bootchartd。请参阅内核参数以获取说明。从启动引导程序启动时,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。请参阅内核参数以获取说明。从启动引导程序启动时,bootchart2 将在默认 120 秒后停止,或者在您到达登录提示符时停止(相反)。请注意,Bootchart2-git 也可以作为 systemd 服务运行,如改善启动性能#使用 bootchart2中所述

bootchart2.service

来自 AURbootchart2AUR 软件包附带一个未记录的 systemd 服务。安装 bootchart2 后,启用 bootchart2.service

您可以通过打开 /var/log/bootchart.png 来可视化结果,或者如果您想要更多功能,请启动

$ pybootchartgui -i

阅读 bootchart2 文档以获取有关使用此版本 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