systemd がデフォルトのターゲットを起動するのにかかる時間をカウントし、それをグラフ化するにはどうすればよいでしょうか?

systemd がデフォルトのターゲットを起動するのにかかる時間をカウントし、それをグラフ化するにはどうすればよいでしょうか?

systemd が実際にデフォルト ターゲットを起動するのに必要な時間を知りたい場合、どうすればよいでしょうか。また、どのユニットの初期化にどのくらいの時間がかかり、どの程度並列で実行されるかを示すグラフを作成することは可能ですか。

答え1

systemd-analyze組み込みツールを使用します。特に、非難とプロットの2つのオプションに興味があります。

systemd-analyze blame
systemd-analyze plot > graph.svg
  • blame: 実行中のユニットのリストを初期化時間順に印刷します
  • plot: サービスの初期化を示すSVGグラフィックを出力します

答え2

システムの起動にかかる時間を調べるために、systemd は を提供しますsystemd-analyze。パラメータを指定しないと、起動にかかる時間がわかります。

を呼び出すと、systemd-analyze critical-chain最も時間がかかったサービスのチェーンのツリーが出力され、 はsystemd-analyze blame各サービスが個別にかかった時間を示します。最後に、 はsystemd-analyze plot > boot.svgすべてをわかりやすく示す小さなグラフを作成します。

もっと凝ったグラフが欲しい場合は、Arch Linux wikiに良い記事があります。ブートチャートは、その名前が示すように、ブート グラフを作成します。

関連情報