From f33d1a84750598949c5c2549fc85dde62b1f5664 Mon Sep 17 00:00:00 2001 From: "jinhong.kim0" Date: Mon, 5 Aug 2024 20:08:59 +0900 Subject: [PATCH] Modify fio job files to use ConfigMap Signed-off-by: jinhong.kim0 --- deploy/fio-cmp.yaml | 5 + deploy/fio-custom-config.yaml | 195 ++++++++++++++++++++++++++++++++++ deploy/fio.yaml | 5 + fio/run.sh | 14 ++- 4 files changed, 216 insertions(+), 3 deletions(-) create mode 100644 deploy/fio-custom-config.yaml diff --git a/deploy/fio-cmp.yaml b/deploy/fio-cmp.yaml index b690fa9..f04bf83 100644 --- a/deploy/fio-cmp.yaml +++ b/deploy/fio-cmp.yaml @@ -88,6 +88,8 @@ spec: mountPath: /volume1/ - name: vol2 mountPath: /volume2/ + - name: fio-config-volume + mountPath: /etc/fio-config command: ["bash", "/fio/cmp_run.sh"] #volumeDevices: #- name: vol1 @@ -102,4 +104,7 @@ spec: - name: vol2 persistentVolumeClaim: claimName: kbench-pvc-2 + - name: fio-config-volume + configMap: + name: fio-config backoffLimit: 0 diff --git a/deploy/fio-custom-config.yaml b/deploy/fio-custom-config.yaml new file mode 100644 index 0000000..cd992da --- /dev/null +++ b/deploy/fio-custom-config.yaml @@ -0,0 +1,195 @@ +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: fio-custom-config +data: + bandwidth-quick.fio: | + [rand-read-bw] + readwrite=randread + include bw-include.fio + include quick-include.fio + [rand-write-bw] + readwrite=randwrite + include bw-include.fio + include quick-include.fio + [seq-read-bw] + readwrite=read + include bw-include.fio + include quick-include.fio + [seq-write-bw] + readwrite=write + include bw-include.fio + include quick-include.fio + bandwidth-random-read.fio: | + [rand-read-bw] + readwrite=randread + include bw-include.fio + include common-include.fio + bandwidth-random-write.fio: | + [rand-write-bw] + readwrite=randwrite + include bw-include.fio + include common-include.fio + bandwidth-sequential-read.fio: | + [seq-read-bw] + readwrite=read + include bw-include.fio + include common-include.fio + bandwidth-sequential-write.fio: | + [seq-write-bw] + readwrite=write + include bw-include.fio + include common-include.fio + bandwidth.fio: | + [rand-read-bw] + readwrite=randread + include bw-include.fio + include common-include.fio + [rand-write-bw] + readwrite=randwrite + include bw-include.fio + include common-include.fio + [seq-read-bw] + readwrite=read + include bw-include.fio + include common-include.fio + [seq-write-bw] + readwrite=write + include bw-include.fio + include common-include.fio + bw-include.fio: | + bs=128k + iodepth=64 + common-include.fio: | + stonewall=1 + randrepeat=0 + verify=0 + ioengine=libaio + direct=1 + time_based=1 + ramp_time=5s + runtime=20s + iops-include.fio: | + bs=4K + iodepth=64 + iops-quick.fio: | + [rand-read-iops] + readwrite=randread + include iops-include.fio + include quick-include.fio + [rand-write-iops] + readwrite=randwrite + include iops-include.fio + include quick-include.fio + [seq-read-iops] + readwrite=read + include iops-include.fio + include quick-include.fio + [seq-write-iops] + readwrite=write + include iops-include.fio + include quick-include.fio + iops-random-read.fio: | + [rand-read-iops] + readwrite=randread + include iops-include.fio + include common-include.fio + iops-random-write.fio: | + [rand-write-iops] + readwrite=randwrite + include iops-include.fio + include common-include.fio + iops-sequential-read.fio: | + [seq-read-iops] + readwrite=read + include iops-include.fio + include common-include.fio + iops-sequential-write.fio: | + [seq-write-iops] + readwrite=write + include iops-include.fio + include common-include.fio + iops.fio: | + [rand-read-iops] + readwrite=randread + include iops-include.fio + include common-include.fio + [rand-write-iops] + readwrite=randwrite + include iops-include.fio + include common-include.fio + [seq-read-iops] + readwrite=read + include iops-include.fio + include common-include.fio + [seq-write-iops] + readwrite=write + include iops-include.fio + include common-include.fio + lat-include.fio: | + bs=4k + iodepth=1 + latency-quick.fio: | + [rand-read-lat] + readwrite=randread + include lat-include.fio + include quick-include.fio + [rand-write-lat] + readwrite=randwrite + include lat-include.fio + include quick-include.fio + [seq-read-lat] + readwrite=read + include lat-include.fio + include quick-include.fio + [seq-write-lat] + readwrite=write + include lat-include.fio + include quick-include.fio + latency-random-read.fio: | + [rand-read-lat] + readwrite=randread + include lat-include.fio + include common-include.fio + latency-random-write.fio: | + [rand-write-lat] + readwrite=randwrite + include lat-include.fio + include common-include.fio + latency-sequential-read.fio: | + [seq-read-lat] + readwrite=read + include lat-include.fio + include common-include.fio + latency-sequential-write.fio: | + [seq-write-lat] + readwrite=write + include lat-include.fio + include common-include.fio + latency.fio: | + [rand-read-lat] + readwrite=randread + include lat-include.fio + include common-include.fio + [rand-write-lat] + readwrite=randwrite + include lat-include.fio + include common-include.fio + [seq-read-lat] + readwrite=read + include lat-include.fio + include common-include.fio + [seq-write-lat] + readwrite=write + include lat-include.fio + include common-include.fio + quick-include.fio: | + stonewall=1 + randrepeat=0 + verify=0 + ioengine=libaio + direct=1 + time_based=1 + ramp_time=1s + runtime=5s diff --git a/deploy/fio.yaml b/deploy/fio.yaml index bb84916..ddc4b3c 100644 --- a/deploy/fio.yaml +++ b/deploy/fio.yaml @@ -65,6 +65,8 @@ spec: volumeMounts: - name: vol mountPath: /volume/ + - name: fio-custom-config + mountPath: /etc/fio-custom-config #volumeDevices: #- name: vol # devicePath: /volume/test @@ -73,4 +75,7 @@ spec: - name: vol persistentVolumeClaim: claimName: kbench-pvc + - name: fio-custom-config + configMap: + name: fio-custom-config backoffLimit: 0 diff --git a/fio/run.sh b/fio/run.sh index 0555a65..ddd03ce 100755 --- a/fio/run.sh +++ b/fio/run.sh @@ -3,6 +3,14 @@ set -e CURRENT_DIR="$(dirname "$(readlink -f "$0")")" +CONFIG_DIR="/etc/fio-custom-config" + +if [ "$(ls -A "$CONFIG_DIR" 2>/dev/null)" ]; then + echo "Custom config files found in: $CONFIG_DIR" +else + CONFIG_DIR="$CURRENT_DIR" + echo "No files found, CONFIG_DIR is now set to default: $CONFIG_DIR" +fi TEST_FILE=$1 @@ -150,19 +158,19 @@ keep_running="true" while [ "$keep_running" == "true" ]; do if [ -n "$IOPS_FIO" ]; then echo Benchmarking $IOPS_FIO into $OUTPUT_IOPS - fio $CURRENT_DIR/$IOPS_FIO $IDLE_PROF --filename=$TEST_FILE --size=$TEST_SIZE \ + fio $CONFIG_DIR/$IOPS_FIO $IDLE_PROF --filename=$TEST_FILE --size=$TEST_SIZE \ --output-format=json --output=$TEMP $rate_iops_flag $rate_flag mv $TEMP $OUTPUT_IOPS fi if [ -n "$BW_FIO" ]; then echo Benchmarking $BW_FIO into $OUTPUT_BW - fio $CURRENT_DIR/$BW_FIO $IDLE_PROF --filename=$TEST_FILE --size=$TEST_SIZE \ + fio $CONFIG_DIR/$BW_FIO $IDLE_PROF --filename=$TEST_FILE --size=$TEST_SIZE \ --output-format=json --output=$TEMP $rate_iops_flag $rate_flag mv $TEMP $OUTPUT_BW fi if [ -n "$LAT_FIO" ]; then echo Benchmarking $LAT_FIO into $OUTPUT_LAT - fio $CURRENT_DIR/$LAT_FIO $IDLE_PROF --filename=$TEST_FILE --size=$TEST_SIZE \ + fio $CONFIG_DIR/$LAT_FIO $IDLE_PROF --filename=$TEST_FILE --size=$TEST_SIZE \ --output-format=json --output=$TEMP $rate_iops_flag $rate_flag mv $TEMP $OUTPUT_LAT fi