Linuxサーバーの再起動にかかる時間を計算する方法はありますか?明確にするために、rebootコマンドからサーバーがバックアップされて実行されるまでの時間(つまり、すべてのサービスが開始され、ユーザーがログオンできるなど)です。
Syslogを調べてみましたが、回転が速すぎるようです。
一番近い分で十分でしょう。
OS = CentOSおよびUbuntu
更新:単純な方法がない場合-おそらく、将来の使用のためにこのデータを取得する方法は何でしょうか。
どちらもsystemdに付属しているCentOS 7以降またはUbuntu 15.04以降を使用していると仮定します。 Systemdには、システムの起動にかかった時間を把握するための優れたツールと、その理由を視覚化するための視覚化機能があります。
最も基本的な出力については、systemd-analyze
そして、あなたはそのような素晴らしい要約を得るでしょう
Startup finished in 853ms (kernel) + 3min 50.610s (initrd) + 10.345s (userspace) = 4min 1.809s
これにより、systemdが起動してから最後の起動にかかった時間がわかります。これは、BIOS /ハードウェアの初期化またはGRUB=タイムアウト)を考慮に入れていませんが、実際のOSブート時間に対しては正確である必要があります。
OSに時間がかかる理由を解明したい場合は、systemd-analyze blame
は、最長実行時間から最短実行時間までのサービスのチャートを提供します。例えば私のシステムから
3min 49.219s systemd-cryptsetup@luks\x2d62611c1c\x2d74ab\x2d4be9\x2d8990\x2d41c0fd863b5a.service
5.315s plymouth-quit-wait.service
3.084s systemd-udev-settle.service
2.275s plymouth-start.service
2.256s docker.service
1.819s powertop.service
778ms firewalld.service
676ms dev-mapper-Fedora\x2droot.device
621ms abrtd.service
493ms lvm2-monitor.service
起動にかかる4分のうち3つは、ラップトップが暗号化されたドライブを持っているためです。
最後に、システムを起動するために「クリティカル」と見なされる一連のイベントを確認できます。 man page から、criticalは「タイムクリティカルなユニットのチェーン」を意味します。これは、systemdが多くのサービスを並列化するためです。これにより、別のユニットを待機する必要があるユニットと、開始までにかかった時間がリストされます。
The time after the unit is active or started is printed after the "@" character.
The time the unit takes to start is printed after the "+" character.
graphical.target @10.336s
└─multi-user.target @10.323s
└─docker.service @4.900s +2.256s
└─network.target @4.868s
└─wpa_supplicant.service @4.828s +14ms
└─dbus.service @3.753s
└─basic.target @3.749s
└─sockets.target @3.749s
└─docker.socket @3.741s +6ms
└─sysinit.target @3.737s
└─systemd-update-utmp.service @3.726s +10ms
└─auditd.service @3.713s +9ms
└─systemd-tmpfiles-setup.service @3.617s +82ms
└─Fedora-import-state.service @3.568s +36ms
└─local-fs.target @3.560s
└─run-user-42.mount @5.753s
└─local-fs-pre.target @383ms
└─systemd-tmpfiles-setup-dev.service @301ms +80ms
└─kmod-static-nodes.service @268ms +10ms
└─system.slice
└─-.slice
ブートツリーを画像にエクスポートして、メールで送信したり、svgでプロットしたりすることもできます。詳細についてはmanページを参照してください。詳細については この関連質問 を参照してください。