What's your systemd-analyze boot time?

I’m curious if anyone can beat mine :smiling_face_with_sunglasses:

  • Dell Latitude 5591 (hw-probe)
  • i5-8400H, UEFI
  • Samsung 980 PRO Gen3

My best was on openSUSE Tumbleweed (6.18.2, Xfce, GRUB2 EFI):

Startup finished in 3.345s (firmware) + 582ms (loader) + 334ms (kernel) + 1.334s (initrd) + 2.427s (userspace) = 8.024s 
graphical.target reached after 2.427s in userspace.

Fedora 43 Workstation:

Startup finished in 4.211s (firmware) + 695ms (loader) + 480ms (kernel) + 1.737s (initrd) + 7.100s (userspace) = 14.224s 
graphical.target reached after 7.100s in userspace.

I learned firmware tricks after that report (UMAF unlocked BIOS settings is fun :stuck_out_tongue:)

I’m not sure why userspace is long or how to shorten it (Ubuntu was 5.446s, oS TW GNOME 2.253s)


Command to run:

systemd-analyze
  • ThinkPad T14s Gen 3 (14" AMD)** laptop.
  • AMD Ryzen 7 PRO 6850U with Radeon Graphics
  • samsung MZVL21T0HCLR-00BL7
  • F43 Gnome (custom install)
Startup finished in 17.866s (firmware) + 28.904s (loader) + 917ms (kernel) + 15.215s (initrd) + 11.414s (userspace) = 1min 14.317s 
graphical.target reached after 11.413s in userspace.
  • Lenovo T470s
  • Core i7-7500U
  • Integrated Intel HD Graphics
  • Samsung SSD 980 PRO
  • F43 KDE Plasma
Startup finished in 8.369s (firmware) + 3.597s (loader) + 1.353s (kernel) + 5.595s (initrd) + 8.381s (userspace) = 27.297s
graphical.target reached after 8.042s in userspace.
  • Asus ZenBook UX425IA
  • AMD Ryzen 7 4700U with Radeon Graphics
  • Intel SSD 660P Series
  • Fedora 43 Workstation (GNOME)

Startup finished in 4.976s (firmware) + 3.328s (loader) + 2.072s (kernel) + 5.170s (initrd) + 9.036s (userspace) = 24.584s graphical.target reached after 9.036s in userspace.

Wasn’t familiar with this - Definitely should consider inspecting and trying to shave down some on that time!

Startup finished in 6.828s (firmware) + 29.937s (loader) + 1.192s (kernel) + 7.943s (initrd) + 1min 54.168s (userspace) = 2min 40.070s 
graphical.target reached after 1min 54.145s in userspace

:rofl: Feels like pulling up to a Porsche Cars & Coffee meet with a clapped out Honda.

Home Mini PC

  • BeeLink SER5
  • AMD Ryzen 7 5800H + Integrated Radeon Vega
  • Toshiba HDWL110 SATA HDD (ik, ik, omg HDD - I’m replacing soon geez)
  • Fedora 42 XFCE

On the other hand, my 10 year old Notebook is not too shabby :smiling_face_with_sunglasses:

Startup finished in 13.371s (firmware) + 7.353s (loader) + 1.235s (kernel) + 3.500s (initrd) + 12.402s (userspace) = 37.863s 
graphical.target reached after 12.402s in userspace
  • Dell Latitude E7450 (2015)
  • Intel i5-5300U + IHD Integrated Graphics
  • SK Hynix SC210 mSATA
  • F43 Sway Spin (but primarily using MangoWC :mango: )

Have a look at systemd-analyze critical-chain to see what is taking time.

Often it’s waiting for devices to turn up to mount disks or network to be online to mount network shares.

2 Likes

I aim for the worst

  • AMD EPYC 7K62 48-Core Processor
  • 128G DDR4 RECC memory
  • ~60 TiB of HDD + 10T of SSD
  • A lot of containers (~25) are started by systemd and podman seems to have some performance issue in parallel container start up case.
  • Good news, containers don’t block login, login is possible after several mins.
$ systemd-analyze
Startup finished in 1min 8.182s (firmware) + 13.153s (loader) + 8.210s (kernel) + 5.684s (initrd) + 24min 45.093s (userspace) = 26min 20.323s
graphical.target reached after 6min 3.486s in userspace.
3 Likes
  • Dell Latitude 7420
  • 11th Gen Intel® Core™ i5-1145G7 × 8
  • Intel® Iris® Xe Graphics (TGL GT2)
  • PM9A1 NVMe Samsung 256GB
  • Fedora 43 Silverblue
$ systemd-analyze
Startup finished in 6.898s (firmware) + 6.791s (loader) + 1.012s (kernel) + 2.708s (initrd) + 8.208s (userspace) = 25.619s 
graphical.target reached after 7.713s in userspace.

Ryzen 9 5900X
RTX 2060
32GB DDR4 3600MHz
1TB NVMe
Fedora 43 (Desktop, KDE)

Startup finished in 8.511s (firmware) + 3.092s (loader) + 2.397s (kernel) + 1.493s (initrd) + 4.817s (userspace) = 20.313s
graphical.target reached after 4.817s in userspace.

2014 Laptop
Intel i7 4100HQ

8 GB DDR3

SATA SSD 120 GB (ADATA one at that)

NVIDIA GTX 860M

lagita@fedora:~$ systemd-analyze
Startup finished in 2.206s (firmware) + 11.249s (loader) + 3.261s (kernel) + 2.290s (initrd) + 23.107s (userspace) = 42.114s
graphical.target reached after 22.993s in userspace.```

im surprised im not the last one, but still horrendous since the last uses HDD. So turns out majority of it is spent on waiting for docker, did not realize it took that long.

lagita@fedora:~$ systemd-analyze  critical-chain
The time when unit became active or started is printed after the “@” character.
The time the unit took to start is printed after the “+” character.

graphical.target 

└─multi-user.target 

└─docker.service 
 +10.116s
└─network-online.target 

└─NetworkManager-wait-online.service 
 +4.816s
└─NetworkManager.service 
 +2.317s
└─network-pre.target 

└─dkms.service 
 +2.255s
└─basic.target 

└─dbus-broker.service 
 +49ms
└─dbus.socket 

└─sysinit.target 

└─systemd-update-utmp.service 
 +33ms
└─auditd.service 
 +65ms
└─systemd-tmpfiles-setup.service 
 +143ms
└─local-fs.target 

└─run-snapd-ns-cups.mnt.mount 

└─run-snapd-ns.mount 

└─swap.target 

└─dev-zram0.swap 
 +134ms
└─systemd-zram-setup@zram0.service 
 +27ms
└─dev-zram0.device 

My specs:

  • Fedora KDE 43
  • Ryzen 5 5500
  • B450 ASUS TUF Gaming Motherboard
  • Radeon RX 570 8 GB
  • 32 GB RAM DDR4
  • M.2 NVMe Patriot P300 256 GB
  • LUKS2 NVMe encryption
michael ~ $ systemd-analyze
Startup finished in 13.784s (firmware) + 7.578s (loader) + 2.206s (kernel) + 28.928s (initrd) + 9.007s (userspace) = 1min 1.505s 
graphical.target reached after 9.007s in userspace.

I don’t know if it’s fast or not, judging by the others, it’s not exactly great, but it’s enough for me.

michael ~ $ systemd-analyze critical-chain
The time when unit became active or started is printed after the "@" character.
The time the unit took to start is printed after the "+" character.

graphical.target @9.007s
└─multi-user.target @9.007s
└─rsyslog.service @8.913s +92ms
└─network-online.target @8.911s
└─NetworkManager-wait-online.service @3.516s +5.394s
└─NetworkManager.service @3.203s +311ms
└─network-pre.target @3.202s
└─firewalld.service @2.509s +692ms
└─polkit.service @2.362s +142ms
└─basic.target @2.341s
└─dbus-broker.service @2.280s +43ms
└─dbus.socket @2.267s +850us
└─sysinit.target @2.266s
└─systemd-resolved.service @2.199s +66ms
└─systemd-tmpfiles-setup.service @2.050s +145ms
└─local-fs.target @2.045s
└─boot-efi.mount @2.025s +19ms
└─boot.mount @1.997s +25ms
└─systemd-fsck@dev-disk-by\x2duuid-bdb632cf\x2d8731\x2d4ab2\x2d84ea\x2d0c95712ced54.service @1.516s +59ms
└─dev-disk-by\x2duuid-bdb632cf\x2d8731\x2d4ab2\x2d84ea\x2d0c95712ced54.device

UNless you really need the log files in /var/log you can get rid of rsyslog and just use the system journal.

This is where the time goes. It’s taking 5.4s to get an IP address from your router.

1 Like

By disabling rsyslog.service and NetworkManager-wait-online.service, for some reason the loading became much faster according to the logs, interesting:

michael ~ $ systemd-analyze
Startup finished in 9.381s (firmware) + 4.715s (loader) + 2.040s (kernel) + 14.057s (initrd) + 4.350s (userspace) = 34.546s 
graphical.target reached after 4.240s in userspace.
michael ~ $ systemd-analyze critical-chain
The time when unit became active or started is printed after the "@" character.
The time the unit took to start is printed after the "+" character.

graphical.target @4.240s
└─multi-user.target @4.240s
└─tuned-ppd.service @4.083s +156ms
└─tuned.service @3.746s +335ms
└─network.target @3.742s
└─NetworkManager.service @3.460s +280ms
└─network-pre.target @3.459s
└─firewalld.service @2.667s +791ms
└─polkit.service @2.448s +197ms
└─basic.target @2.413s
└─dbus-broker.service @2.354s +41ms
└─dbus.socket @2.342s +833us
└─sysinit.target @2.340s
└─systemd-resolved.service @2.266s +74ms
└─systemd-tmpfiles-setup.service @2.127s +134ms
└─local-fs.target @2.123s
└─boot-efi.mount @2.102s +20ms
└─boot.mount @2.080s +20ms
└─systemd-fsck@dev-disk-by\x2duuid-bdb632cf\x2d8731\x2d4ab2\x2d84ea\x2d0c95712ced54.service @1.585s +72ms
└─dev-disk-by\x2duuid-bdb632cf\x2d8731\x2d4ab2\x2d84ea\x2d0c95712ced54.device
1 Like

Processors: 12 × AMD Ryzen 5 220 w/ Radeon 740M Graphics

Memory: 16 GiB of RAM (13.3 GiB usable)

Graphics Processor: AMD Radeon 740M Graphics

Manufacturer: LENOVO

Product Name: 21ST004HMH

System Version: ThinkPad E16 Gen 3

Fedora 43 KDE Plasma Desktop Edition

Startup finished in 8.788s (firmware) + 2.495s (loader) + 995ms (kernel) + 3.667s (initrd) + 9.232s (userspace) = 25.178s 
graphical.target reached after 9.232s in userspace.

ASUS ROG Strix B560-G Gaming WIFI Mainboard

Intel i5-11400 with buildin GPU running Xe driver (instead of i915)

16 GB RAM

Samsung 980 Pro 1 TB Nvme

F43 workstation, gnome

homebrewed kernel 6.18.4 (mostly F43 config)

Startup finished in 8.186s (firmware) + 4.957s (loader) + 949ms (kernel) + 1.841s (initrd) + 5.625s (userspace) = 21.560s 
graphical.target reached after 5.622s in userspace.

Personally I uninstall rsyslog and clean up the logs in /var/log.
I have little use for log file now that nearly everything in in the system and user journals.

1 Like