Linuxサーバーを再起動するのにかかる時間を計算する方法はありますか?明確に言うと、再起動コマンドからサーバーがバックアップされ実行されるまでの時間です(つまり、すべてのサービスが機能し、ユーザーがログインできるようになります)。
システムログを見てみましたが、急速に回転しているようです。
分単位の精度で十分です。
オペレーティングシステム= CentOSとUbuntu
更新:簡単な方法がない場合は、後で使用するためにこのデータをキャプチャする方法があります。
答え1
CentOS 7+またはUbuntu 15.04+を使用しているとします。どちらもsystemdに付属しています。 Systemdには、システムの起動にかかる時間を計算するいくつかの優れたツールと、その理由を理解するいくつかの可視化ツールがあります。
最も基本的な出力の場合、実行するとsystemd-analyze
次のような素晴らしい要約が得られます。
Startup finished in 853ms (kernel) + 3min 50.610s (initrd) + 10.345s (userspace) = 4min 1.809s
これは、最後に起動してからシステムを起動するのに要した時間を示します。これはBIOS/ハードウェアの初期化またはGRUBタイムアウトを考慮しませんが、実際のオペレーティングシステムの起動時間については正確である必要があります。
オペレーティングシステムがなぜそれほど時間がかかるのかを調べるには、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分は暗号化されたドライブがあるからです。
最後に、systemd-analyze critical-chain
システムの起動時に「重要」と見なされるイベントのリストを見ることができます。 ~からマニュアルページ重要とは、「時間に敏感なデバイスチェーン」を意味します。これは、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を使用して画像を描いたりして素晴らしい作業を実行することもできます。詳しくはマニュアルページをご覧ください。この関連質問詳しくはこちらをご覧ください。
答え2
7年4ヶ月前質問
それは次にかかります仕える人BIOS/EFI の初期化やその他の操作にかかる時間だけでなく、RAIDディスクの初期化;これら2つは私が経験した名前の中で最大の名前です。ただし、Linuxとは関係のない時間がかかる他のことが発生する可能性があります。
RHEL / Centos 7以降は通常、起動中にネットワークを待っているシステムで停止します。職場にいて企業のインターネットがある場合は、ネットワークスイッチ/ルーターがサーバーにDHCP IPアドレスをすぐに付与しないため、サーバーに問題が発生する可能性があります。少なくとも30秒間です。
予想される再起動時間を確認する最も簡単な方法は、SSHを介してputtyと入力してから「reboot」と入力することです。その時点から時間を表示し、reboot <enter>
別のウィンドウから始めてping myserver
応答を受け取るまで待ちます。違いは予想時間です。たくさんやってどれくらい変わるのか確認してください。
pingが応答し始めると、SSHやGDMなどの他のサービスがまだ開始されていないため、必ずすぐにログインできるわけではありませんが、通常は約5秒以内に開始されますが、正常にログインできるかどうかを簡単に知ることができます。その後、成功したログインから再起動してEnterを押した時間があなたの時間です。
reboot
さらに、データをディスクに書き込む必要がある場合、または一部のNFSサービスがタイムアウトする必要がある場合は、入力後にシャットダウンする際に顕著な遅延が発生する可能性があります。
シャットダウンと開始プロセス中に時間がかかる可能性がある合法的なことがたくさんあります。 XFSを使用するRHEL 7/8とは異なり、SLES 11.4、EXT4ファイルシステムを使用すると、fsck has not been run in ~30 days
いくつかのcr @ pが発生するため、サーバーが100日以上再起動されていない場合(まれではない)、起動時にfsckが実行されます。巨大な回転ディスクなので、30分ほどかかることがあります。
私の経験によると、通常5分未満が予想されます。サーバーBIOSとディスクRAIDの場合は約3分、RHEL 7/8のgrubメニューからLinuxの場合は1:30未満です。 10分後、サーバールームに行き、コンソール(またはIPMIまたはiDRAC経由)で何が起こっているのかを確認します。