SPECIFICATION.md
The specifications below quantify Firecracker's promise to enable minimal-overhead execution of container and serverless workloads. These specifications are enforced by integration tests (that run for each PR and main branch merge).
On an M5D.metal instance (with hyperthreading disabled) and an M6G.metal instance and given host system resources are available (e.g., there are enough free CPU cycles, there is enough RAM, etc.), customers can rely on the following:
8 CPU ms1 and never crashes/halts/terminates
for internal reasons once started. Note: The wall-clock time has a large
standard deviation, spanning 6 ms to 60 ms, with typical durations around
12 ms.1 CPUs and 128 MiB of RAM, and a guest OS with the Firecracker-tuned
kernel:
Firecracker's virtual machine manager threads have a memory overhead
<= 5 MiB. The memory overhead is dependent on the workload (e.g. a
workload with multiple vsock connections might generate a
memory overhead > 5MiB) and on the VMM configuration (the overhead does
not include the memory used by the MMDS data
store.
The overhead is tested as part of the Firecracker CI using a memory cop.
It takes <= 125 ms to go from receiving the Firecracker InstanceStart API
call to the start of the Linux guest user-space /sbin/init process. The
boot time is measured using a VM with the serial console disabled and a
minimal kernel and root file system. For more details check the
boot time
integration tests.
The compute-only guest CPU performance is > 95% of the equivalent
bare-metal performance. [integration test pending]
14.5 Gbps network throughput by using <= 80%
of the host CPU core for emulation. [integration test pending]25 Gbps network throughput by using 100% of
the host CPU core for emulation. [integration test pending]0.06ms of latency.
[integration test pending]
See further details on network performance1 GiB/s storage throughput by using <= 70% of
the host CPU core for emulation. [integration test pending]lost-logs and lost-metrics counters.