概要
systemd-analyzeは、システム起動プロセスにおけるボトルネックを特定し、各サービスが起動に寄与する時間を測定することで、システム管理者がパフォーマンスの問題を診断・解決するのを支援します。
主な機能
- 全体の起動時間の測定
- 個々のサービスおよびユニットの開始時間の分析
- 起動に最も影響を与える「クリティカルチェーン」の特定
- 起動プロセスの可視化 (SVG, DOTグラフ)
- systemdユニットファイルの検証
主なオプション
systemd-analyzeコマンドと共に使用される主なオプションです。
起動時間の分析
可視化とデバッグ
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`systemd-analyze` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
systemd-analyzeコマンドの様々な活用例です。
全体の起動時間確認
systemd-analyze
システムの全体の起動時間を確認します。
サービスごとの起動時間確認
systemd-analyze blame
各サービスが起動に要した時間を降順でソートして表示します。
起動クリティカルチェーン分析
systemd-analyze critical-chain
起動完了に最も影響を与えるユニットの依存関係チェーンを確認します。
起動時間可視化 (SVG)
systemd-analyze plot > boot.svg
起動プロセスをSVG形式のグラフとして生成し、「boot.svg」ファイルに保存します。このファイルはWebブラウザで開くことができます。
ユニットファイル検証
systemd-analyze verify /etc/systemd/system/my-custom.service
指定されたsystemdユニットファイルの構文エラーや不正な設定を検査します。
ヒントと注意点
systemd-analyzeの使用に関する役立つヒントと注意点です。
Graphvizのインストール
plotまたはdotオプションを使用して可視化されたグラフを生成するには、Graphvizパッケージがインストールされている必要があります。
- Debian/Ubuntu: sudo apt install graphviz
- CentOS/RHEL: sudo yum install graphviz
blame結果の解釈
systemd-analyze blameの結果は、各ユニットが「開始にかかった時間」を示しますが、systemdは多くのサービスを並列で開始するため、単純に最も時間がかかったサービスが起動遅延の原因であると断定することはできません。critical-chainと合わせて分析することがより正確です。
起動の最適化
critical-chainで特定されたユニットを中心に、不要な依存関係を削除したり、サービス開始タイプ(例: on-demand)を変更したりすることで、起動時間を短縮できます。