This repository contains experiment scripts and artifacts for my MSc thesis on the performance of io_uring
. The results of this work are described on https://brynjar.io/msc-thesis.
- fio single core with/without COOP flag
- fio multi core with/without COOP flag
- fio multi core with/without COOP flag + eBPF to count kick / reschedule calls
- fio multi core with/without COOP flag + parallel CPU intensive processs
- IRQs on odd numbered CPUs only - fio multi core with/without COOP flag + compare running on odd vs even numbered cores + eBPF to count kick / reschedule calls and IRQs per core
- IRQs on odd numbered CPUs only - same as experiment 5 + run CPU intensive process on odd / even cores (inverse to fio)
Run the following commands to compile fio with the liburing engine
git clone [email protected]:axboe/fio.git
git checkout 06812a4f
git apply this/fio/liburing.patch
make
./fio ...
Run the following commands to compile RocksDB with the liburing backend
git clone [email protected]:facebook/rocksdb.git
git checkout 9d64ca55
cp this/rocksdb/ plugin/liburing/
DEBUG_LEVEL=0 ROCKSDB_PLUGINS="liburing" make -j48 db_bench
./db_bench ...