你的 Linux 系统开机时间已经击败了 99% 的电脑
开机 时间
当你打开系统电源时，你会等待制造商的徽标出现，屏幕上可能会显示一些消息（以非安全模式启动），然后是 [Grub](https://www.gnu.org/software/grub/) 屏幕、操作系统加载屏幕以及最后的登录屏。


你检查过这花费了多长时间么？也许没有。除非你真的需要知道，否则你不会在意开机时间。


但是如果你很想知道你的 Linux 系统需要很长时间才能启动完成呢？使用秒表是一种方法，但在 Linux 中，你有一种更好、更轻松地了解系统启动时间的方法。


### 在 Linux 中使用 systemd-analyze 检查启动时间


![](/data/attachment/album/201908/17/104358s1ho8ug868hso1y8.jpg)


无论你是否喜欢，[systemd](https://en.wikipedia.org/wiki/Systemd) 运行在大多数流行的 Linux 发行版中。systemd 有许多管理 Linux 系统的工具。其中一个就是 `systemd-analyze`。


`systemd-analyze` 命令为你提供最近一次启动时运行的服务数量以及消耗时间的详细信息。


如果在终端中运行以下命令：



```
systemd-analyze
```

你将获得总启动时间以及固件、引导加载程序、内核和用户空间所消耗的时间：



```
Startup finished in 7.275s (firmware) + 13.136s (loader) + 2.803s (kernel) + 12.488s (userspace) = 35.704s

graphical.target reached after 12.408s in userspace
```

正如你在上面的输出中所看到的，我的系统花了大约 35 秒才进入可以输入密码的页面。我正在使用戴尔 XPS Ubuntu。它使用 SSD 存储，尽管如此，它还需要很长时间才能启动。


不是那么令人印象深刻，是吗？为什么不共享你们系统的启动时间？我们来比较吧。


你可以使用以下命令将启动时间进一步细分为每个单元：



```
systemd-analyze blame
```

这将生成大量输出，所有服务按所用时间的降序列出。



```
7.347s plymouth-quit-wait.service
6.198s NetworkManager-wait-online.service
3.602s plymouth-start.service
3.271s plymouth-read-write.service
2.120s apparmor.service
1.503s [email protected]
1.213s motd-news.service
 908ms snapd.service
 861ms keyboard-setup.service
 739ms fwupd.service
 702ms bolt.service
 672ms dev-nvme0n1p3.device
 608ms [email protected]:intel_backlight.service
 539ms snap-core-7270.mount
 504ms snap-midori-451.mount
 463ms snap-screencloud-1.mount
 446ms snapd.seeded.service
 440ms snap-gtk\x2dcommon\x2dthemes-1313.mount
 420ms snap-core18-1066.mount
 416ms snap-scrcpy-133.mount
 412ms snap-gnome\x2dcharacters-296.mount
```

#### 额外提示：改善启动时间


如果查看此输出，你可以看到网络管理器和 [plymouth](https://wiki.archlinux.org/index.php/Plymouth) 都消耗了大量的启动时间。


Plymouth 负责你在 Ubuntu 和其他发行版中在登录页面出现之前的引导页面。网络管理器负责互联网连接，可以关闭它来加快启动时间。不要担心，在你登录后，你可以正常使用 wifi。



```
sudo systemctl disable NetworkManager-wait-online.service
```

如果要还原更改，可以使用以下命令：



```
sudo systemctl enable NetworkManager-wait-online.service
```

请不要在不知道用途的情况下自行禁用各种服务。这可能会产生危险的后果。


现在你知道了如何检查 Linux 系统的启动时间，为什么不在评论栏分享你的系统的启动时间？




---


via: <https://itsfoss.com/check-boot-time-linux/>


作者：[Abhishek Prakash](https://itsfoss.com/author/abhishek/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


OK
When you power on your system, you wait for the manufacturer’s logo to come up, a few messages on the screen perhaps (booting in insecure mode), [Grub](https://www.gnu.org/software/grub/) screen, operating system loading screen and finally the login screen.

Did you check how long did it take? Perhaps not. Unless you really need to know, you won’t bother with the boot time details.

But what if you are curious to know long long your Linux system takes to boot? Running a stopwatch is one way to find that but in Linux, you have better and easier ways to find out your system’s start up time.

## Checking boot time in Linux with systemd-analyze

![Find out Linux Boot Time](https://itsfoss.com/content/images/wordpress/2019/08/linux-boot-time-800x450.jpg)

Like it or not, [systemd](https://en.wikipedia.org/wiki/Systemd) is running on most of the popular Linux distributions. The systemd has a number of utilities to manage your Linux system. One of those utilities is systemd-analyze.

The systemd-analyze command gives you a detail of how many services ran at the last start up and how long they took.

If you run the following command in the terminal:

systemd-analyze

You’ll get the total boot time along with the time taken by firmware, boot loader, kernel and the userspace:

Startup finished in 7.275s (firmware) + 13.136s (loader) + 2.803s (kernel) + 12.488s (userspace) = 35.704s

graphical.target reached after 12.408s in userspace

As you can see in the output above, it took about 35 seconds for my system to reach the screen where I could enter my password. I am using Dell XPS Ubuntu edition. It uses SSD storage and despite of that it takes this much time to start.

Not that impressive, is it? Why don’t you share your system’s boot time? Let’s compare.

You can further breakdown the boot time into each unit with the following command:

systemd-analyze blame

This will produce a huge output with all the services listed in the descending order of the time taken.

```
7.347s plymouth-quit-wait.service
6.198s NetworkManager-wait-online.service
3.602s plymouth-start.service
3.271s plymouth-read-write.service
2.120s apparmor.service
1.503s
```[[email protected]](/cdn-cgi/l/email-protection)
1.213s motd-news.service
908ms snapd.service
861ms keyboard-setup.service
739ms fwupd.service
702ms bolt.service
672ms dev-nvme0n1p3.device
608ms systemd-backlight@backlight:intel_backlight.service
539ms snap-core-7270.mount
504ms snap-midori-451.mount
463ms snap-screencloud-1.mount
446ms snapd.seeded.service
440ms snap-gtk\x2dcommon\x2dthemes-1313.mount
420ms snap-core18-1066.mount
416ms snap-scrcpy-133.mount
412ms snap-gnome\x2dcharacters-296.mount


Please keep in mind that the services run in parallel.

### Bonus Tip: Improving boot time

If you look at this output, you can see that both network manager and [plymouth](https://wiki.archlinux.org/index.php/Plymouth) take a huge bunch of boot time.

Plymouth is responsible for that boot splash screen you see before the login screen in Ubuntu and other distributions. Network manager is responsible for the internet connection and may be turned off to speed up boot time. Don’t worry, once you log in, you’ll have wifi working normally.

sudo systemctl disable NetworkManager-wait-online.service

If you want to revert the change, you can use this command:

sudo systemctl enable NetworkManager-wait-online.service

Now, please don’t go disabling various services on your own without knowing what it is used for. It may have dangerous consequences.

Similarly, you can also [use systemd to investigate why your Linux system takes a long time to shut down](https://itsfoss.com/long-shutdown-linux/).

*Now that you know how to check the boot time of your Linux system, why not share your system’s boot time in the comment section?*