Skip to content

Instantly share code, notes, and snippets.

@riuvshin
Last active February 12, 2018 22:48
Show Gist options
  • Save riuvshin/c8b353bc02066594f0f20b17e49709c5 to your computer and use it in GitHub Desktop.
Save riuvshin/c8b353bc02066594f0f20b17e49709c5 to your computer and use it in GitHub Desktop.
#!/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