- Russel container:
russel deploy, rootless container. - Russel microVM:
russel deploywithtype = "microvm". - Plain Podman:
podman buildfrom the example’s Dockerfile, thenpodman run.
Deploy to first response
Time from starting the deploy until the app answered an HTTP request, including the build. Russel’s Nix builds were cached; Podman rebuilt its image.
Most of Podman’s time is the image build. With both sides cached, the gap comes down to the start-up numbers below.
Start-up only
Time from “the build exists” to “the app answers”, without the build:
Plain Podman usually starts fastest. A Russel container adds 100 to 300 ms for preparing its root folder and checking that the app really answers. A microVM adds a kernel boot on top. Containers were capped at 256 MB of memory to match the microVM default.
Where a container deploy spends its time
A typical cached deploy ofbasic-http:
Run it yourself
The benchmark scripts are in the repo root and need a checkout, Nix, rootless Podman, and Podman or Docker for the Dockerfile baseline. The microVM runs also need KVM and root, and are skipped without Russel’s kernel.--cold clears the caches first. The scripts take over /var/lib/russel while they run, so never run them on a server with real services.