web-dev-qa-db-ja.com

起動時間SysVvs Systemd-systemdシステムは約2秒長くかかります!

使ってます meta-raspberrypi私のraspberrypiイメージを構築する

SysVと比較すると、systemdを使用すると起動時間が約2秒長くなります。

Systemv_Systemd_kernel_log_comp

カーネルログから多くの情報を引き出すことはありません。

systemd

[    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

SysV

[    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サービスの起動に費やされていると思います。

はいの場合、どのサービスが開始され、それぞれにどのくらいの時間がかかっているかを確認するにはどうすればよいですか?

2
mk..

まず、質問の両方の出力がSysV init(INIT: version 2.88)からのものであることがわかりました。そのため、ある時点で混乱しました。

とにかく、さまざまなサービスのタイミングをWRTすると、systemd-analyze plot > sysd.svgでかなりおしゃれなSVGを取得できます(ここでリダイレクトが必要です。そうでない場合は、SVGデータを標準出力に出力します。これはあまり役に立ちません)。

enter image description here

出力形式の選択はありませんが、これ(Raspbian8を実行しているB +から)はconvert sysd.svg sysd.jpgconvertはImageMagickの一部であり、すべてのLinuxディストリビューションで利用可能です)を使用してJPEGに変換されました。

systemd-analyze blameを使用すると、より簡単なテキストリストを利用できます。

systemdが起動しているので、必要のないサービスはすべて

おそらく、しかし一般的にそれらは時間がかかりません。たとえば、あるサービスがNFSのセットアップを担当しているが、そのようなファイルシステムを構成していない場合、時間やリソースを消費することはありません。

もちろん、整頓のために、とにかくそれらを取り除きたいと思うかもしれません。最初に何かが何であるかを確信していることを確認してください。 systemctl list-unitsは、デフォルトでロードされたサービスの単純なリストを提供するため、ここで役立ちます。 Systemdには多くのマニュアルページがあります。それらはapropos systemdで見つけることができます(出力が得られない場合は、最初にSudo mandbを試してください。何らかの理由で、これが一部のディストリビューションで維持されない場合があります)。それらの多くは、サービスファイルを作成するためのガイドです。コマンドに厳密に制限するには、apropos -s 1 systemdを使用します。

1
goldilocks