summary refs log tree commit diff
path: root/playgrounds/fio
diff options
context:
space:
mode:
authorFranck Cuny <fcuny@twitter.com>2018-11-23 09:27:06 -0800
committerFranck Cuny <fcuny@twitter.com>2018-11-23 09:27:06 -0800
commit4492c5cfbe0e99666afed6780b674beaa670d1a1 (patch)
tree0b60557a2640f364ddeef4cbca9d72b2358e618b /playgrounds/fio
parent[tmux] Small change to binding + fix terminal (diff)
downloademacs.d-4492c5cfbe0e99666afed6780b674beaa670d1a1.tar.gz
[bash] Let's try to use emacs tty
Diffstat (limited to 'playgrounds/fio')
-rw-r--r--playgrounds/fio/rand-read.fio16
-rw-r--r--playgrounds/fio/rand-write.fio14
-rwxr-xr-xplaygrounds/fio/runner.sh60
-rw-r--r--playgrounds/fio/seq-read.fio14
-rw-r--r--playgrounds/fio/seq-rw.fio17
-rw-r--r--playgrounds/fio/seq-write.fio14
6 files changed, 135 insertions, 0 deletions
diff --git a/playgrounds/fio/rand-read.fio b/playgrounds/fio/rand-read.fio
new file mode 100644
index 0000000..8d473af
--- /dev/null
+++ b/playgrounds/fio/rand-read.fio
@@ -0,0 +1,16 @@
+[global]
+name=fio-rand-RW
+filename=./data/fio-rand-RW
+rw=randrw
+rwmixread=60
+rwmixwrite=40
+bs=4K
+direct=0
+numjobs=4
+time_based=1
+runtime=900
+
+[file1]
+size=8G
+ioengine=libaio
+iodepth=16
diff --git a/playgrounds/fio/rand-write.fio b/playgrounds/fio/rand-write.fio
new file mode 100644
index 0000000..5564414
--- /dev/null
+++ b/playgrounds/fio/rand-write.fio
@@ -0,0 +1,14 @@
+[global]
+name=fio-rand-write
+filename=./data/fio-rand-write
+rw=randwrite
+bs=4K
+direct=0
+numjobs=4
+time_based=1
+runtime=900
+
+[file1]
+size=8G
+ioengine=libaio
+iodepth=16
diff --git a/playgrounds/fio/runner.sh b/playgrounds/fio/runner.sh
new file mode 100755
index 0000000..8df8895
--- /dev/null
+++ b/playgrounds/fio/runner.sh
@@ -0,0 +1,60 @@
+#!/bin/sh
+
+## Helper script to run fio tests and generate reports
+
+DATA_DIR=./data
+LOG_DIR=./logs
+REPORT_DIR=./reports
+
+FIO_BIN=./usr/bin/fio
+if [ "${2}x" != "x" ]; then
+  FIO_BIN=${2}
+fi
+
+FIOS_LIST=$(ls *.fio)
+NOW_EPOCH=$(date +"%s")
+LOG_DIR_READS=${LOG_DIR}/reads
+LOG_DIR_WRITES=${LOG_DIR}/writes
+
+# create required directories
+mkdir -p ${DATA_DIR}
+
+if [ -d "${REPORT_DIR}" ]; then
+  echo "Report directory exists, archiving using current timestamp: ${NOW_EPOCH}"
+  mv ${REPORT_DIR} ${REPORT_DIR}_${NOW_EPOCH}
+fi
+mkdir -p ${REPORT_DIR}
+
+if [ -d "${LOG_DIR}" ]; then
+  echo "Log directory exists, archiving using current timestamp: ${NOW_EPOCH}"
+  mv ${LOG_DIR} ${LOG_DIR}_${NOW_EPOCH}
+fi
+mkdir -p ${LOG_DIR_WRITES}
+mkdir -p ${LOG_DIR_READS}
+
+# run all fios in sequential order
+for i in $(echo ${FIOS_LIST} | tr " " "\n")
+do
+  echo -e "\nStarting fio test ${i}..."
+  ${FIO_BIN} ./${i} --output ${REPORT_DIR}/${i}.out
+
+  mv *read*.log ${LOG_DIR_READS}/
+  mv *write*.log ${LOG_DIR_WRITES}/
+
+  rm -f data/*   # delete created fio files after each run
+
+  echo "Completed fio test ${i}."
+done
+
+# plot reports to svg
+FIO_PLOT_BIN=./usr/bin/fio_generate_plots
+if type "${FIO_PLOT_BIN}" > /dev/null && type "gnuplot" > /dev/null; then
+
+  echo "fio_generate_plots is installed generating svg reports based on fio logs"
+
+  ( cd ${LOG_DIR_READS} && for f in *.log; do mv $f ${f/.[1-3]/}; done && ${FIO_PLOT_BIN} "All-Reads" )
+  ( cd ${LOG_DIR_WRITES} && for f in *.log; do mv $f ${f/.[1-3]/}; done && ${FIO_PLOT_BIN} "All-Writes" )
+
+  mv ${LOG_DIR_READS}/*.svg ${REPORT_DIR}/
+  mv ${LOG_DIR_WRITES}/*.svg ${REPORT_DIR}/
+fi
diff --git a/playgrounds/fio/seq-read.fio b/playgrounds/fio/seq-read.fio
new file mode 100644
index 0000000..c3225a3
--- /dev/null
+++ b/playgrounds/fio/seq-read.fio
@@ -0,0 +1,14 @@
+[global]
+name=fio-seq-reads
+filename=./data/fio-seq-reads
+rw=read
+bs=256K
+direct=1
+numjobs=1
+time_based=1
+runtime=900
+
+[file1]
+size=8G
+ioengine=libaio
+iodepth=16
diff --git a/playgrounds/fio/seq-rw.fio b/playgrounds/fio/seq-rw.fio
new file mode 100644
index 0000000..81c50e7
--- /dev/null
+++ b/playgrounds/fio/seq-rw.fio
@@ -0,0 +1,17 @@
+[global]
+name=fio-seq-RW
+filename=./data/fio-seq-RW
+rw=rw
+rwmixread=60
+rwmixwrite=40
+bs=256K
+direct=0
+numjobs=4
+time_based=1
+runtime=900
+
+[file1]
+size=8G
+ioengine=libaio
+iodepth=16
+
diff --git a/playgrounds/fio/seq-write.fio b/playgrounds/fio/seq-write.fio
new file mode 100644
index 0000000..88fbeaa
--- /dev/null
+++ b/playgrounds/fio/seq-write.fio
@@ -0,0 +1,14 @@
+[global]
+name=fio-seq-write
+filename=./data/fio-seq-write
+rw=write
+bs=256K
+direct=0
+numjobs=1
+time_based=1
+runtime=900
+
+[file1]
+size=8G
+ioengine=libaio
+iodepth=16