A ping-pong latency measurement tool on MirageOS
This tool can measure the TCP network latency(round trip time) between two different MirageOS programs.
MirageOS and hypervisor software(Xen or QEMU/KVM) are required. Libvirt with virsh(https://libvirt.org/) and jq (https://stedolan.github.io/jq/) are also required if you want a JSON format result file.
- Edit the following variable in
unikernel.ml
ofpp_client
.server_ip
(server side IP address)
- Configure your target programs. You must assign an IP address for each side in this step.
(client side using hvt)
$ mirage configure --ipv4=192.168.122.101/24 -t hvt
(server side using hvt)
$ mirage configure --ipv4=192.168.122.100/24 -t hvt
- Compile your target programs.
- Launch the server side at first, then the client side.
- Modify parameters in
pp_run.sh
so that it can be used on your environment. - Execute
./pp_run.sh xen /path/to/dir
if you want to launch the client and server side programs at/path/to/dir
on Xen-based physical servers. "virtio" can be used for QEMU/KVM-based physical servers. - Execute
./tool/get_latency_stat.sh /path/to/result.json
if you want to get statistical values such as the average latency, 90-percentile and 99-percentile.