It seemed slow to me that the "minimal" installation of Ubuntu Desktop 20.10 in a VirtualBox VM takes 37 seconds to boot up, so I ran some experiments.
The host system is a Late 2012 iMac running macOS Catalina. It has 24 GB of RAM (2x4 GB + 2x8 GB) installed, and the CPU is the Intel Core i5-3470 (Ivy Bridge, 4 cores, 4 threads, 3.2 GHz base and 3.6 GHz max turbo.) In all cases, the guests are running with VirtualBox Ubuntu Linux 64-bit defaults, which is to say, one ACHI SATA drive that is dynamically sized. The backing store is on an APFS-formatted Fusion Drive.
The basic "37 seconds" number was timed with a stopwatch, from the point where the Oracle VM screen is replaced with black, to the point where the wallpaper is displayed. Auto-login is enabled for consistency in this test. This number should be considered ±1 second, since I took few samples of each system. I'm looking for huge improvements.
So what are the results?
- Baseline: 1 core, ext4, linux-generic, elevator=mq-deadline. 37 seconds.
- XFS: 1 core, xfs root, linux-generic, elevator=mq-deadline. 37 seconds.
- linux-virtual: 1 core, xfs root, linux-virtual, elevator=mq-deadline. 37 seconds.
- No-op scheduler: 1 core, xfs root, linux-virtual, elevator=noop. 37 seconds.
- Quad core: 4 cores, xfs root, linux-virtual, elevator=noop. 27 seconds!
systemd-analyze critical-chain
and systemd-analyze blame
, but it mostly tells me what random thing was starved for resources that boot, instead of consistently pointing to one thing causing a lot of delay. Also, it has a habit of saying "boot complete in seven seconds" or whatever as soon as it has decided to start GDM, leaving a lot of time unaccounted for. So I didn't bother on these tests.)