启动时间 SysV 与 Systemd - systemd 系统需要大约 2 秒的时间!

启动时间 SysV 与 Systemd - systemd 系统需要大约 2 秒的时间!

我用它meta-raspberrypi来塑造我的raspberrypi形象

systemd与 SysV 相比,我发现启动时间增加了约 2 秒。

Systemv_Systemd_kernel_log_comp

我没有从内核日志中获取太多信息。

系统

[    4.452082] gpiomem-bcm2835 20200000.gpiomem: Initialised: Registers at 0x20200000
[    8.111375] i2c /dev entries driver
[    8.284057] EXT4-fs (mmcblk0p2): re-mounted. Opts: data=ordered

系统V

[    3.839449] gpiomem-bcm2835 20200000.gpiomem: Initialised: Registers at 0x20200000
[    5.990874] i2c /dev entries driver
[    6.136112] EXT4-fs (mmcblk0p2): re-mounted. Opts: data=ordered

从上面可以看出,systemd 在基本内核启动之后和加载 i2c 内核模块之前花费了一些额外的时间。

我假设这时间花在启动 systemd 服务上。

如果是,我如何检查哪些服务已启动以及每个服务花费了多少时间?

答案1

首先,我观察到您问题中的两个输出均来自 SysV init ( INIT: version 2.88),因此在某些时候您会感到困惑。

不管怎样,WRT各种服务的时间,你可以得到一个非常时髦的SVG systemd-analyze plot > sysd.svg(这里的重定向是必要的,否则它会将SVG数据打印到标准输出,这不是很有用):

在此输入图像描述

无法选择输出格式,但是这个(来自运行 Raspbian 8 的 B+)被转换为 JPEG convert sysd.svg sysd.jpgconvert是 ImageMagick 的一部分,可在任何 Linux 发行版上使用)。

可以使用 提供更简单的文本列表systemd-analyze blame

systemd 正在启动,所以我不需要任何服务

可能吧,但一般来说这些不会花费任何时间。例如,如果某个服务负责设置 NFS,但您尚未配置任何此类文件系统,则它不会占用任何时间或资源。

当然,为了保持整洁,您可能无论如何都想摆脱它们。首先确保您确定某物的用途。 systemctl list-units在这里很有用,因为默认情况下它提供了加载服务的简单列表。 Systemd 有很多手册页;你可以找到它们apropos systemd(如果你没有得到任何输出,请先尝试sudo mandb,无论出于何种原因,有时这在某些发行版上没有保持)。其中许多是编写服务文件的指南;将其严格限制为命令使用apropos -s 1 systemd

相关内容