Last active
November 17, 2024 18:44
-
-
Save rsyuzyov/1ae1302ee595194cc664e9e535df9c3e to your computer and use it in GitHub Desktop.
fiodiskmark.sh
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| FIOTXT="${0/.sh/.fio}" | |
| RESULTFILE_PATH="${0/.sh/.txt}" | |
| TESTFILE_PATH="${0/.sh/.tmp}" | |
| TESTFILE_SIZE="1000m" | |
| TEST_LOOPS="5" | |
| printline(){ | |
| echo "$1" "$2" "$3" "$4" "$5" "$6" | |
| echo "$1" "$2" "$3" "$4" "$5" "$6" >> $RESULTFILE_PATH | |
| } | |
| printfline(){ | |
| printf "$1" "$2" "$3" "$4" "$5" "$6" | |
| printf "$1" "$2" "$3" "$4" "$5" "$6" >> $RESULTFILE_PATH | |
| } | |
| runtest(){ | |
| sync; sleep 3; | |
| fio --loops=$TEST_LOOPS --size=$TESTFILE_SIZE --filename=$TESTFILE_PATH --ioengine=libaio --direct=1 --name=SeqReadQ8 --bs=$2 --iodepth=$3 --rw=read > $FIOTXT | |
| READ=$(cat $FIOTXT | grep 'READ:' | awk '{print substr($3, 2, length($3)-3)}') | |
| RIOPS=$(cat $FIOTXT | grep 'read:' | awk '{print substr($2, 6, length($2)-6)}') | |
| sync; sleep 3; | |
| fio --loops=$TEST_LOOPS --size=$TESTFILE_SIZE --filename=$TESTFILE_PATH --ioengine=libaio --direct=1 --name=SeqWriteQ8 --bs=$2 --iodepth=$3 --rw=write > $FIOTXT | |
| WRITE=$(cat $FIOTXT | grep 'WRITE:' | awk '{print substr($3, 2, length($3)-3)}') | |
| WIOPS=$(cat $FIOTXT | grep 'write:' | awk '{print substr($2, 6, length($2)-6)}') | |
| printfline " | %12s | %10s | %10s | %10s | %10s |\n" "$1" "$READ" "$WRITE" "$RIOPS" "$WIOPS" | |
| printline " +------------------------------------------------------------------+" | |
| } | |
| echo "" > $RESULTFILE_PATH | |
| printline "test path: $PWD, `date`" | |
| printline "test size: $TESTFILE_SIZE, loops: $TEST_LOOPS" | |
| printline " +------------------------------------------------------------------+" | |
| printfline " | %12s | %10s | %10s | %10s | %10s |\n" "Mode" "Read" "Write" "Read iops" "Write iops" | |
| printline " +------------------------------------------------------------------+" | |
| runtest SEQ1MQ8T1 1m 8 SeqReadQ8 SeqWriteQ8 | |
| runtest SEQ1MQ1T1 1m 1 SeqReadQ1 SeqWriteQ1 | |
| runtest RND4KQ32T1 4k 32 RandReadQ32 RandWriteQ32 | |
| runtest RND4KQ1T1 4k 1 RandReadQ1 RandWriteQ1 | |
| rm "$FIOTXT" | |
| rm "$TESTFILE_PATH" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment