Skip to content

Commit

Permalink
Add artifacts
Browse files Browse the repository at this point in the history
  • Loading branch information
Ingimarsson committed Jun 23, 2024
1 parent 6b0117e commit b79831b
Show file tree
Hide file tree
Showing 241 changed files with 117,462 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.png
Binary file added .gitignore.swp
Binary file not shown.
22 changes: 22 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1 +1,23 @@
# io_uring performance analysis

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 liburing engine

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 ...

## RocksDB liburing backend

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 ...
14 changes: 14 additions & 0 deletions experiments/exp_01_coop_2023-12-03/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Experiment 5 (2023-12-03)

Single core experiment.

## Results

<p>
<img src="result_iops.png" alt="drawing" width="45%"/>
<img src="result_cs.png" alt="drawing" width="45%"/>
</p>
<p>
<img src="result_clat_avg.png" alt="drawing" width="45%"/>
<img src="result_clat_p99.png" alt="drawing" width="45%"/>
</p>
43 changes: 43 additions & 0 deletions experiments/exp_01_coop_2023-12-03/plot.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import matplotlib.pyplot as plt
import csv

import matplotlib as mpl
mpl.rcParams["font.size"] = 16

x = []
y1 = []
y2 = []

a = 1
b = 6

x_label = 'Queue Depth'
y_label = 'IOPS (x 1000)'

with open('results.csv','r') as csvfile:
lines = csv.reader(csvfile, delimiter=',')
for idx, row in enumerate(lines):
print(idx, row)
#if idx == 1:
#x_label = row[0]
#y_label = row[a]
if idx > 1:
x.append(row[0])
y1.append(float(row[a]) / 1000)
y2.append(float(row[b]) / 1000)

plt.plot(x, y1, marker = 'o',label = "Default")
plt.plot(x, y2, marker = 'o',label = "COOP_TASKRUN")

plt.xticks(rotation = 25)
plt.xlabel(x_label)
plt.ylabel(y_label)

#plt.yscale("log")

plt.ylim(ymin=0)
plt.subplots_adjust(left=0.15, right=0.95, bottom=0.15, top=0.95)

plt.grid()
plt.legend()
plt.savefig('result_iops.svg')
43 changes: 43 additions & 0 deletions experiments/exp_01_coop_2023-12-03/plot_cs.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import matplotlib.pyplot as plt
import csv

import matplotlib as mpl
mpl.rcParams["font.size"] = 16

x = []
y1 = []
y2 = []

a = 5
b = 10

x_label = 'Queue Depth'
y_label = 'context switch / sec'

with open('results.csv','r') as csvfile:
lines = csv.reader(csvfile, delimiter=',')
for idx, row in enumerate(lines):
print(idx, row)
#if idx == 1:
#x_label = row[0]
#y_label = row[a]
if idx > 1:
x.append(row[0])
y1.append(float(row[a]))
y2.append(float(row[b]))

plt.plot(x, y1, marker = 'o',label = "Default")
plt.plot(x, y2, marker = 'o',label = "COOP_TASKRUN")

plt.xticks(rotation = 25)
plt.xlabel(x_label)
plt.ylabel(y_label)

plt.yscale("log")

plt.subplots_adjust(left=0.15, right=0.95, bottom=0.15, top=0.95)

plt.grid()
plt.legend()
plt.savefig('result_cs.svg')

38 changes: 38 additions & 0 deletions experiments/exp_01_coop_2023-12-03/plot_iops.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import matplotlib.pyplot as plt
import csv

x = []
y1 = []
y2 = []

a = 1
b = 6

x_label = 'Queue Depth'
y_label = 'IOPS (x 1000)'

with open('results.csv','r') as csvfile:
lines = csv.reader(csvfile, delimiter=',')
for idx, row in enumerate(lines):
print(idx, row)
#if idx == 1:
#x_label = row[0]
#y_label = row[a]
if idx > 1:
x.append(row[0])
y1.append(float(row[a]) / 1000)
y2.append(float(row[b]) / 1000)

plt.plot(x, y1, marker = 'o',label = "Default")
plt.plot(x, y2, marker = 'o',label = "COOP_TASKRUN")

plt.xticks(rotation = 25)
plt.xlabel(x_label)
plt.ylabel(y_label)

#plt.yscale("log")

plt.grid()
plt.legend()
plt.savefig('result_iops.svg')

44 changes: 44 additions & 0 deletions experiments/exp_01_coop_2023-12-03/plot_lat.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import matplotlib.pyplot as plt
import csv

import matplotlib as mpl
mpl.rcParams["font.size"] = 16

x = []
y1 = []
y2 = []

a = 3
b = 8

x_label = 'Queue Depth'
y_label = 'clat (p99) (ms)'

with open('results.csv','r') as csvfile:
lines = csv.reader(csvfile, delimiter=',')
for idx, row in enumerate(lines):
print(idx, row)
#if idx == 1:
#x_label = row[0]
#y_label = row[a]
if idx > 1:
x.append(row[0])
y1.append(float(row[a]) / 1000)
y2.append(float(row[b]) / 1000)

plt.plot(x, y1, marker = 'o',label = "Default")
plt.plot(x, y2, marker = 'o',label = "COOP_TASKRUN")

plt.xticks(rotation = 25)
plt.xlabel(x_label)
plt.ylabel(y_label)

#plt.yscale("log")

plt.ylim(ymin=0)
plt.subplots_adjust(left=0.15, right=0.95, bottom=0.15, top=0.95)

plt.grid()
plt.legend()
plt.savefig('result_clat_p99.svg')

Loading

0 comments on commit b79831b

Please sign in to comment.