[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v11 00/15] Introduce the microvm machine type
From: |
Sergio Lopez |
Subject: |
Re: [PATCH v11 00/15] Introduce the microvm machine type |
Date: |
Mon, 02 Dec 2019 14:01:42 +0100 |
User-agent: |
mu4e 1.2.0; emacs 26.2 |
Markus Armbruster <address@hidden> writes:
> Sergio Lopez <address@hidden> writes:
>
>> microvm is a machine type inspired by Firecracker and constructed
>> after its machine model.
>>
>> It's a minimalist machine type without PCI nor ACPI support, designed
>> for short-lived guests. microvm also establishes a baseline for
>> benchmarking and optimizing both QEMU and guest operating systems,
>> since it is optimized for both boot time and footprint.
>
> I know this has been merged, but I ask anyway: got some boot time and
> memory footprint measurements?
It's been a while since I ran an instrumented kernel, but I've been
playing a bit with OSv (thanks to a question in qemu-discuss), which is
aggressively optimized for boot time, and I have some numbers.
This is using a QEMU build with some patches to be able to do a
microvm-only build that "I have not yet submitted but shouldn't be
controversial" (TM) [1]. The Q35 binary was also built having only the
Q35 machine type enabled.
In this test, OSv runs to userspace and then shuts down. OSv gives us
its boot time (from entry point to userspace), and I also get the
execution totals with "time". Variation between runs is +-2%:
------------
| qemu-q35 |
------------
Boot time
=========
time ./x86_64-softmmu/qemu-system-x86_64 -M q35 -enable-kvm \
-cpu host -m 64m -kernel ~/osv/build/release/loader-stripped.elf \
-append "/hello" -serial stdio -nodefaults -no-user-config \
-nographic -no-reboot -device virtio-blk,id=blk0,drive=hd0,scsi=off \
-drive file=~/osv/build/release/usr.img,if=none,id=hd0,cache=none \
-global virtio-mmio.force-legacy=off -no-reboot
SeaBIOS (version rel-1.12.0-59-gc9ba5276e321-prebuilt.qemu.org)
Booting from ROM..OSv v0.54.0-26-gcccc7d40
Booted up in 11.77 ms
Cmdline: /hello
Hello from C code
real 0m0.073s
user 0m0.034s
sys 0m0.029s
Size
====
# ls -l x86_64-softmmu/qemu-system-x86_64*
-rwxr-xr-x. 1 root root 13400680 Dec 2 07:31 x86_64-softmmu/qemu-system-x86_64
-rwxr-xr-x. 1 root root 11707344 Dec 2 07:51
x86_64-softmmu/qemu-system-x86_64.stripped
----------------
| qemu-microvm |
----------------
Boot time
=========
time ./x86_64-softmmu/qemu-system-x86_64 -M microvm -enable-kvm \
-cpu host -m 64m -smp 1 \
-kernel ~/osv/build/release/loader-stripped.elf \
-append "--nopci /hello" -serial stdio -nodefaults -no-user-config \
-nographic -no-reboot \
-device virtio-blk-device,id=blk0,drive=hd0,scsi=off \
-drive file=~/osv/build/release/usr.img,if=none,id=hd0 \
-global virtio-mmio.force-legacy=off
OSv v0.54.0-26-gcccc7d40
Booted up in 3.64 ms
Cmdline: /hello
Hello from C code
real 0m0.020s
user 0m0.009s
sys 0m0.011s
Size
====
# ls -l x86_64-softmmu/qemu-system-x86_64*
-rwxr-xr-x. 1 root root 7823344 Dec 2 07:35 x86_64-softmmu/qemu-system-x86_64
-rwxr-xr-x. 1 root root 6486992 Dec 2 07:55
x86_64-softmmu/qemu-system-x86_64.stripped
I don't have numbers for memory footprint. It'd be nice coming up with
some reasonable methodology for getting them, as there a significant
amount of moving parts there that can have an impact on memory
consumption.
Sergio.
[1] https://github.com/slp/qemu/tree/microvm_only
signature.asc
Description: PGP signature
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [PATCH v11 00/15] Introduce the microvm machine type,
Sergio Lopez <=