I’ve been working on improving boot times lately. I was doing uncompressed images in dracut.conf on the assumption that loading is faster without involving decompression, but I never tested this theory until now.
First I generated the images, got the final size, and the amount of time it took to create the images. This is handled by:
clear && sudo -e ‘/etc/dracut.conf.d/99-custom.conf’ && sudo time dracut –force –regenerate-all && sudo time lsinitrd | grep ‘Image:’
Next, I rebooted and immediately ran systemd-analyze
In-short, my theory was right with cat (uncompressed) coming in first at 15.112s, but gzip, lzo, and lz4 were still within 15 seconds and are half the file-size!
Testing done on a Dell Latitude 5591 (BIOS 1.32), openSUSE Tumbleweed (GNOME, 6.8.8-1-default), i5-8400H, SK hynix Gold P31 (1TB), UEFI mode, unencrypted with root on ext4.
cat
52M
3.13user 1.35system 0:04.18elapsed 107%CPU
0.25user 0.45system 0:00.41elapsed 169%CPU
Startup finished in 4.491s (firmware) + 603ms (loader) + 452ms (kernel) + 3.874s (initrd) + 5.691s (userspace) = 15.112s
graphical.target reached after 5.690s in userspace.
gzip
26M
11.61user 1.28system 0:05.05elapsed 255%CPU
2.18user 0.27system 0:02.08elapsed 118%CPU
Startup finished in 4.490s (firmware) + 504ms (loader) + 621ms (kernel) + 4.266s (initrd) + 5.602s (userspace) = 15.485s
graphical.target reached after 5.601s in userspace.
bzip2
26M
6.82user 1.28system 0:07.79elapsed 104%CPU
9.31user 0.41system 0:09.19elapsed 105%CPU
Startup finished in 4.477s (firmware) + 503ms (loader) + 2.651s (kernel) + 4.274s (initrd) + 5.572s (userspace) = 17.479s
graphical.target reached after 5.572s in userspace.
lzma
21M
19.94user 1.32system 0:20.89elapsed 101%CPU
5.89user 0.34system 0:05.74elapsed 108%CPU
Startup finished in 4.513s (firmware) + 486ms (loader) + 2.369s (kernel) + 4.151s (initrd) + 5.626s (userspace) = 17.147s
graphical.target reached after 5.626s in userspace.
xz
23M
23.75user 1.47system 0:07.23elapsed 348%CPU
4.82user 0.34system 0:04.65elapsed 110%CPU
Startup finished in 4.592s (firmware) + 496ms (loader) + 1.450s (kernel) + 4.246s (initrd) + 5.904s (userspace) = 16.690s
graphical.target reached after 5.904s in userspace.
lzo
26M
11.58user 1.35system 0:05.06elapsed 255%CPU
2.14user 0.31system 0:02.07elapsed 118%CPU
Startup finished in 4.647s (firmware) + 510ms (loader) + 631ms (kernel) + 4.004s (initrd) + 5.861s (userspace) = 15.655s
graphical.target reached after 5.861s in userspace.
lz4
26M
11.60user 1.31system 0:05.06elapsed 255%CPU
2.14user 0.30system 0:02.07elapsed 118%CPU
Startup finished in 4.507s (firmware) + 507ms (loader) + 631ms (kernel) + 4.165s (initrd) + 5.891s (userspace) = 15.702s
graphical.target reached after 5.891s in userspace.
zstd
25M
8.24user 1.39system 0:05.94elapsed 162%CPU
0.60user 0.45system 0:00.47elapsed 224%CPU
Startup finished in 4.500s (firmware) + 501ms (loader) + 503ms (kernel) + 4.071s (initrd) + 7.000s (userspace) = 16.577s
graphical.target reached after 7.000s in userspace.