On Sun, 25 Sep 2022 at 16:32:21 +0100, Simon McVittie wrote:
> A breakdown of the time to run autopkgtest's autopkgtests in a qemu VM,
> excluding time taken to install dependencies:
Updated for 5.44, on similar hardware although perhaps not entirely
apples-to-apples:
> - autopkgtest (NullRunner, ChrootRunner, etc.): 3 minutes
4 minutes
> - installed (a smoke-test): < 1 minute
< 1 minute
> - docker: 32 minutes
20 minutes
> - lxc: 16 minutes
53 minutes (!)
> - lxd: 45 minutes
18 minutes
> - podman: 41 minutes
20 minutes
> - podman-init: 20 minutes
13 minutes
> - schroot: 96 minutes (!)
7 minutes (schroot used to be notably slow, but it seems that using
eatmydata throughout has made a huge difference to this one)
> - unshare: 9 minutes
5 minutes
There might be some randomness here: I don't know why lxc was so much
slower now than before, while most of the others were significantly faster.
I also don't understand why podman is still slower than podman-init, when
podman-init does more work (podman just runs sleep(1) or a minimal reaper
or something as pid 1, similar to docker, whereas podman-init runs a full
operating system from systemd upwards).
Paride's work on applying eatmydata to schroot seems to have been a
huge win. Can someone perhaps give lxc a similar treatment?
> I want to see whether we can run the unshare test (currently marked with
> isolation-machine) in lxc containers like the ones used by debci. If we
> can, then I'm inclined to use UnshareRunner for all the test coverage
> that can't be done by NullRunner or ChrootRunner, use lxc or podman-init
> for all the test coverage that needs an init system, and limit docker,
> lxd, podman and schroot to a relatively simple smoke-test (plus targeted
> tests for things that are known to have regressed for those backends).
Merge requests very welcome for anything moving in this direction.
smcv