Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
vladandrew committed Mar 6, 2021
2 parents e28ab29 + 70dd618 commit e9f5776
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 15 deletions.
42 changes: 29 additions & 13 deletions experiments/fig_13_nginx-perf/README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,34 @@
# NGINX Throughput baseline
# NGINX throughput comparison

This experiment provides data for Fig. 13. We evaluate the performance
of NGINX with wrk (1 minute, 14 threads, 30 conns, static 612B HTML
page).
<img align="right" src="../../plots/fig_13_nginx-perf.svg" width="300" />

## Usage
We measure the throughput of [NGINX](nginx.org/) in a wide range of
systems, including:

* [HermiTux](https://ssrg-vt.github.io/hermitux/) on [uHyve](https://github.com/hermitcore/uhyve);
* [Lupine](https://github.com/hckuo/Lupine-Linux) on [Firecracker](https://firecracker-microvm.github.io/);
* Lupine on KVM;
* Linux on Firecracker;
* Linux on KVM;
* Linux as a userspace binary;
* [OSv](https://github.com/cloudius-systems/osv) on KVM;
* [Rumprun](https://github.com/rumpkernel/rumprun) on KVM;
* Docker; and,
* Unikraft on KVM.

Run instructions:
We also compare [MirageOS](https://mirage.io) on Solo5, however, it does support
running NGINX as it is a Domain-Specific Language unikernel library Operating
System. Instead, we use their [template TCP HTTP server](https://github.com/mirage/mirage-skeleton/tree/master/applications/static_website_tls)
capable of serving static content over HTTP and measure this with the same tools
and payload.

```
cd experiments/15_nginx-perf
./genimages.sh
./benchmark.sh
```
We evaluate the performance with [`wrk`](https://github.com/wg/wrk) for 1 minute
using 14 threads, 30 connections, and a static 612B HTML page.

## Usage

- `./genimages.sh` takes about 4 minutes in average.
- `./benchmark.sh` takes about 40-45 minutes in average.
* `./genimages.sh` downloads and builds the tested images and takes about 4
minutes on average;
* `./benchmark.sh` runs the experiment and takes about 40-45 minutes on
average; and,
* `./plot.py` is used to generate the figure.
2 changes: 1 addition & 1 deletion experiments/fig_14_unikraft-nginx-alloc-boot/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Unikraft NGINX boot time with varying allocators

This experiment provides data for Fig. 14.
<img align="right" src="../../plots/fig_14_unikraft-nginx-alloc-boot.svg" width="300" />

We measure the guest boot time (not including VMM overhead) and
provide a per-component breakdown to highlight the impact of memory
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,12 @@ qemu-system-x86_64 \
-device virtio-net-pci,netdev=testtap0,addr=0x4,ioeventfd=on,guest_csum=off,gso=off \
-kernel build/uk_test_suite_kvm-x86_64 \
| tee results.txt
RET=$?

# destroy network setup
ip link set dev $BRNAME down
ip link set dev $TAPNAME down
ip tuntap del dev $TAPNAME mode tap
ip link del $BRNAME

exit $?
exit $RET

0 comments on commit e9f5776

Please sign in to comment.