web-dev-qa-db-ja.com

起動時間を短縮する方法

私はいくつかのsystemd-analyze出力をチェックしていますが、実際には起動時間に重大な問題はありませんが、さらに減らすことができるかどうか疑問に思っています。 SSDを使用していて、Ubuntuが唯一のOSであることに言及したいと思います。

systemd-analyze 
起動は5.450秒(ファームウェア)+ 565ミリ秒(ローダー)+ 2.632秒(カーネル)+ 10.086秒(ユーザー空間)= 18.734秒
 graphical.targetで終了し、ユーザー空間で10.071秒後に終了しました
systemd-analyze blame 
 6.607s NetworkManager-wait-online.service 
 5.660s fwupd.service 
 5.042s Bolt.service 
 4.134s plymouth-quit-wait .service 
 1.579s dev-sda2.device 
 1.552s systemd-backlight @ backlight:intel_backlight.service 
 1.367s plymouth-read-write.service 
 1.211 s snapd.service 
 903ms systemd-logind.service 
 572ms systemd-journald.service 
 555ms dev-loop9.device 
 523ms dev-loop6.device 
 515ms man-db.service 
 499ms dev-loop8.device 
 478ms dev-loop5.device 
 472ms dev-loop13.device 
 448ms dev- loop7.device 
 441ms dev-loop11.device 
 438ms dev-loop10.device 
 432ms dev-loop12.device 
 415ms udisks2.service 
 406ms dev-loop14.devi ce 
 319ms snap-gnome\x2d3\x2d28\x2d1804-71.mount 
graphic.target @ 10.071s 
└─multi-user.target@ 10.071s 
└─kerneloops.service @ 10.042s + 27ms
└─network-online.target@ 10.032s 
└─NetworkManager-wait-online.service @ 3.422秒+6.607秒
└─NetworkManager.service @ 3.224s + 186ms
└─dbus.service@ 3.218s 
└─basic.target@ 3.211s 
└─sockets.target@ 3.211s 
└─snapd.socket @ 3.208s + 2ms
└─sysinit.target@ 3.205s 
└─systemd-backlight @ backlight:intel_backlight.service @ 1.468s + 1.552s
└─system-systemd\ x2dbacklight.slice @ 1.467s 
└─system.slice@ 212ms 
└─-.slice@ 212ms 
3
codear

このシステムがネットワーク内のサーバーでない場合は、NetworkManager-wait-online.serviceが使用する時間を削減することから始めます。これを行うには、次のようにサービスを無効にします。

Sudo systemctl disable NetworkManager-wait-online.service

再起動後に再び表示される場合は、上記のコマンドを次のように実行できます。

Sudo systemctl mask NetworkManager-wait-online.service

喜んで、これを最初に試し、次のステップに進む前に起動時間が改善するかどうかを確認してください。これだけでも、起動時間が大幅に短縮されることがあります。


上記の変更をいつでもロールバックするには、次を実行してください:

Sudo systemctl unmask NetworkManager-wait-online.service

次に、それに従ってください:

Sudo systemctl enable NetworkManager-wait-online.service

systemd-networkd-wait-online.serviceとは

名前systemd-networkd-wait-online.service、systemd-networkd-wait-online-ネットワークがオンラインになるのを待ちます

構文systemd-networkd-wait-online.service

   /lib/systemd/systemd-networkd-wait-online

説明systemd-networkd-wait-onlineは、ネットワークが構成されるのを待機するワンショットシステムサービス(systemd.service(5)を参照)です。デフォルトでは、認識してsystemd-networkd.service(8)によって管理されているすべてのリンクが完全に設定または失敗するまで待機し、少なくとも1つのリンクがオンラインになるまで待機します。ここで、オンラインとは、リンクの動作状態が「劣化」以上であることを意味します。しきい値は--operational-state =オプションで設定できます。

NetworkManager-wait-online.serviceの目的は、ネットワークがオンラインになるのを待ってから、ブートプロセスを続行することです。

これは、たとえば、ブートプロセスの一部としてネットワークリソースに依存するサーバー(リモートドライブのマウントなど)の場合、またはネットワークに正しく依存して起動するワークステーション(シンクライアントなど)の場合に必要です。

それ以外の場合、デスクトップユーザーはNetworkManager-wait-online.serviceを無効にすることができ、起動が完了してから不要な待機時間を引いた後、ネットワークは正常に接続します。

この場合は無効にしても安全です。

幸運を祈ります

4
Raffa

1.5秒のこの行は バグ です。

      1.552s systemd-backlight@backlight:intel_backlight.service

バグのない私のシステムでは、わずか1ミリ秒です。

$ systemd-analyze blame | grep backlight

         1ms systemd-backlight@backlight:intel_backlight.service

その他のヒント(NetworkManager-wait-online.serviceを含む)は、次の場所にあります。

1