Hi,

I am quite late to the party :-) Could you run OSv on single CPU with 
verbose on (add -V to run.py) and send us the output so we can see a little 
more what is happening. To disable networking you need to add '--nics=0' 
(for all 50 options run.py supports run it with '--help'). I am not 
familiar with that benchmark but I wonder if it needs read-write FS (ZFS in 
OSv case), if not that you can build OSv images with read-only FS 
(./scripts/build fs=rofs). Lastly, you can improve boot time by running OSv 
on firecracker (
https://github.com/cloudius-systems/osv/wiki/Running-OSv-on-Firecracker) or 
on QEMU microvm (-p qemu_imcrovm - requires QEMU >= 4.1), with read-only FS 
on both OSv should boot within 5ms, ZFS within 40ms). Last thing - writing 
to console on OSv can be quite slow, I wonder how much this benchmark does 
it.

While I definitely agree with my colleague Nadav, where he essentially says 
do not use OSv if the raw performance matters (database for example) and 
Linux will beat it no matter what, OSv may have advantages in use cases 
where pure performance does not matter (it still needs to be reasonable). I 
think the best use cases for OSv are serverless or stateless apps 
(microservices or web assembly) running on single CPU where all state 
management is delegated to a remote persistent store (most custom-built 
business apps are like that) and where high isolation matters. 

Relatedly, I think it might be more useful to think of OSv (and other 
unikernels) as highly isolated processes. To that end, we still need to 
optimize memory overhead (stacks for example) and improve virtio-fs support 
(in this case to run the app on OSv you do not need full image, just kernel 
to run a Linux app).

Also, I think the lack of good tooling in unikernel space affects their 
adoption. Compare it with docker - build, push, pull, run. OSv has its 
equivalent - capstan - but at this point, we do not really have a registry 
where one can pull the latest OSv kernel or push, pull images. Trying to 
run an app on OSv is still quite painful to a business app developer - it 
probably takes at least 30 minutes or so. 

Lastly, I think one of the main reasons for Docker adoption, was 
repeatability (besides its fantastic ease of use) where one can create an 
image and expect it to run almost the same way in production. Imagine you 
can achieve that with OSv. 

Waldek

On Tuesday, February 25, 2020 at 7:00:16 AM UTC-5, [email protected] 
wrote:
>
> Very well explained. Thank you for that. That does make perfect sense as 
> well. 

-- 
You received this message because you are subscribed to the Google Groups "OSv 
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/osv-dev/9359703e-b5b2-4d9d-80af-2f19250044a4%40googlegroups.com.

Reply via email to