Last active
February 12, 2018 22:48
-
-
Save riuvshin/c8b353bc02066594f0f20b17e49709c5 to your computer and use it in GitHub Desktop.
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 | |
set -e | |
execute_with_timer() { | |
START=`date +%s` | |
$@ >/dev/null 2>&1 | |
END=`date +%s` | |
EXECUTION_TIME=$((END-START)) | |
} | |
test_git_clone() { | |
echo -n "running $FUNCNAME, iteration: " | |
local EXECUTION_TIME_SUM=0 | |
for i in $(seq 1 $ITERATIONS); do | |
echo -n "$i " | |
rm -rf $(echo ${1} | cut -d '/' -f2) | |
execute_with_timer git clone https://github.com/$1 | |
local EXECUTION_TIME_SUM=$(($EXECUTION_TIME_SUM + $EXECUTION_TIME)) | |
rm -rf $(echo ${1} | cut -d '/' -f2) | |
done | |
echo "Done!" | |
echo "AVG execution time for $FUNCNAME $1 is: $(echo "scale=2; $EXECUTION_TIME_SUM/$ITERATIONS" | bc) sec" | |
echo "==============================================================" | |
} | |
test_build_mvn() { | |
echo -n "running $FUNCNAME, iteration: " | |
local EXECUTION_TIME_SUM=0 | |
git clone https://github.com/$CLONE_PROJECT >/dev/null 2>&1 | |
cd $(echo ${CLONE_PROJECT} | cut -d '/' -f2) | |
for i in $(seq 1 $ITERATIONS); do | |
echo -n "$i " | |
rm -rf .repo | |
execute_with_timer mvn clean install -Dmaven.repo.local=$(pwd)/.repo | |
local EXECUTION_TIME_SUM=$(($EXECUTION_TIME_SUM + $EXECUTION_TIME)) | |
done | |
cd ../ | |
rm -rf $(echo ${CLONE_PROJECT} | cut -d '/' -f2) | |
echo "Done!" | |
echo "AVG execution time for $FUNCNAME is: $(echo "scale=2; $EXECUTION_TIME_SUM/$ITERATIONS" | bc) sec" | |
echo "==============================================================" | |
} | |
test_io_write() { | |
echo -n "running $FUNCNAME, write 500m file, iteration: " | |
local TIME_SUM=0 | |
local SPEED_SUM=0 | |
for i in $(seq 1 $ITERATIONS); do | |
echo -n "$i " | |
rm -rf $VOLUME/largefile_write | |
result=$(dd if=/dev/zero of=$VOLUME/largefile_write bs=1M count=500 2>&1) | |
local TIME=$(echo $result | cut -d ' ' -f 12) | |
local SPEED=$(echo $result | cut -d ' ' -f 14) | |
local TIME_SUM=$(echo $TIME_SUM + $TIME | bc) | |
local SPEED_SUM=$(echo $SPEED_SUM + $SPEED | bc) | |
rm -rf $VOLUME/largefile_write | |
done | |
echo "Done!" | |
echo "AVG write speed (500m file):" | |
echo "$(echo "scale=2; $SPEED_SUM/$ITERATIONS" | bc) $(echo $result | cut -d ' ' -f 15) / in $(echo "scale=2; $TIME_SUM/$ITERATIONS" | bc) sec" | |
echo "==============================================================" | |
} | |
test_io_read() { | |
echo -n "running $FUNCNAME, read 500m file, iteration: " | |
#prepare file for read | |
dd if=/dev/zero of=$VOLUME/largefile_read bs=1M count=500 >/dev/null 2>&1 | |
local TIME_SUM=0 | |
local SPEED_SUM=0 | |
for i in $(seq 1 1); do | |
echo -n "$i " | |
result=$(dd if=$VOLUME/largefile_read of=/dev/null bs=4k 2>&1) | |
local TIME=$(echo $result | cut -d ' ' -f 12) | |
local SPEED=$(echo $result | cut -d ' ' -f 14) | |
local TIME_SUM=$(echo $TIME_SUM + $TIME | bc) | |
local SPEED_SUM=$(echo $SPEED_SUM + $SPEED | bc) | |
done | |
rm -rf $VOLUME/largefile_read | |
echo "Done!" | |
echo "AVG read speed (500m file):" | |
echo "$(echo "scale=2; $SPEED_SUM/$ITERATIONS" | bc) $(echo $result | cut -d ' ' -f 15) / in $(echo "scale=2; $TIME_SUM/$ITERATIONS" | bc) sec" | |
echo "==============================================================" | |
} | |
ITERATIONS=${ITERATIONS:-5} | |
export JAVA_OPTS="-Xmx512m -Djava.net.preferIPv4Stack=true" | |
export MAVEN_OPTS="-Xmx512m -Djava.net.preferIPv4Stack=true" | |
export VOLUME=${VOLUME:-"/mnt/gluster"} | |
export CLONE_PROJECT=${CLONE_PROJECT:-"eclipse/che-lib"} | |
START_TESTS=`date +%s` | |
cd $VOLUME | |
test_git_clone ${CLONE_PROJECT} | |
test_build_mvn | |
test_io_write | |
test_io_read | |
END_TESTS=`date +%s` | |
echo "Total execution time: $((END_TESTS-START_TESTS))sec" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment