While looking through various Qubes forums, I noticed that prospective Qubes users tend to worry about whether their systems are powerful enough. I’ve also wondered what the impact of CPU power on Qubes OS’ operating speed is. There aren’t any good resources on this. Since I don’t have access to a bunch of computers to experiment on myself, I came up with a standardized test we could use to create a handy reference table.
The VM start-up test
- Take an up-to-date version of the current release (R4.0, at the time of writing). It doesn’t matter if you’ve installed point releases of the current release (e.g. R4.0.3).
- Entering
sudo qubes-dom0-update
into dom0 should return:No new updates available
.
-
Install a pristine, untouched version of the debian-x-minimal template, ‘x’ being the current supported release, which is debian-10-minimal at the time of writing. If you already have the template and would like to keep it, you can clone it and delete the original package using
sudo dnf remove qubes-template-debian-[x]-minimal
.
- The template can be installed by typing
sudo qubes-dom0-update qubes-template-debian-[x]-minimal
into dom0, replacing[x]
with the current release.
- For the sake of consistency, do not update this template or install anything onto it. This way everyone is attempting to start the exact same VM (AFAIK templates of releases are unchanged throughout their lifecycles).
- I don’t feel this is ultra-important since I imagine most users who already have that template installed already have offshoots or haven’t installed much that would impact start-up time, but it’s nonetheless nice to have for the sake of good science.
-
Install the latest VM kernel (enter
sudo qubes-dom0-update kernel-latest-qubes-vm
into dom0), then head to the template’s settings, select the correct version number, and save settings.
- Kernels are trickier to keep consistent. Since point releases come with updated kernels, we can’t simply say, “Set the kernel to what your release shipped with”. It might be best to just use whatever the newest supported version is. I’m not sure how decent this solution is, since kernel version seems most likely to have a major impact on start-up time. Anyone have any ideas?
-
Shut down all other VMs using
qvm-shutdown --all
(make sure all your work has been saved). -
Run
time qvm-start debian-10-minimal
and report thereal time
returned, converted into seconds if necessary. -
Submit your CPU model and your VM boot time in seconds
- @deeplow is there a Discourse form for this, similar to a poll? Something simple that will create a database/spreadsheet with two fields
The test above doesn’t have much to do with RAM and parallel processing, but this would answer a central question for people looking to get into Qubes, since you can easily expand your RAM while switching your CPU typically implies getting a new system. A minimal template was chosen as the test vehicle because it varies the least, is relatively quick to download, and those who already have them on their systems tend to be more experienced with Qubes and won’t find it bothersome to clone and delete it. Debian was chosen arbitrarily.
I’m sure there are ways to take this test and make it parallel and with workloads so that the impacts of RAM and CPU cores can be more accessible, but that’s beyond my current abilities. This crude test should provide enough information and gives the most bang for the proverbial buck.
I hope someday there’ll be a Qubes benchmark that can go into the Hardware Compatibility List. Maybe something like the test above can be incorporated into qubes-hcl-report
and return a benchmark for just the CPU.