storage and memory in separate functions
This commit is contained in:
parent
912a969bdf
commit
d4036f090e
@ -2,33 +2,47 @@
|
|||||||
|
|
||||||
. driglibash-base
|
. driglibash-base
|
||||||
. creation_repo.sh &> /dev/null
|
. creation_repo.sh &> /dev/null
|
||||||
#prerequisite: creation_repo.sh has been run
|
|
||||||
FILES_TO_KEEP='sample0'
|
FILES_TO_KEEP='sample0'
|
||||||
REMOTE="./remote/performance_testing"
|
REMOTE="./remote/performance_testing"
|
||||||
|
|
||||||
Help()
|
Help()
|
||||||
{
|
{
|
||||||
echo "
|
echo "
|
||||||
NAME
|
NAME
|
||||||
performance_tests.sh
|
performance_tests.sh
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
performance_tests.sh [-h] [-a] [-n number] [SSH LINK to en empty remote git repository] OPTIONS
|
performance_tests.sh [-a] [-h] [-n number]
|
||||||
|
OPTIONS
|
||||||
-a excutes all the tests.
|
-a excutes all the tests.
|
||||||
-n [number] executes test [number]
|
-n number executes test number
|
||||||
-h prints the help.
|
-h prints the help.
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
This script is in writing. It allows you to measure memory and bandwidth usage for different method of cloning on the remote repository given.
|
This script is in writing. It allows you to measure memory and bandwidth usage. The first four test different cloning methods. Te following apply changes to the local remote before testing fetching and merging commands.
|
||||||
TEST0: classic cloning
|
TEST0: classic cloning
|
||||||
TEST1: --single-branch "
|
TEST1: --single-branch
|
||||||
|
TEST2: --depth=1 --no-single-branch
|
||||||
|
TEST3: --depth=1
|
||||||
|
TEST4: sparse-checking 1M sample0 only
|
||||||
|
_________________________________________
|
||||||
|
TEST5: classic fetching and merging after addition of 1M file
|
||||||
|
TEST6: "
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#USEFUL FUNCTIONS FOR THE TESTS
|
||||||
|
get_storage_used(){
|
||||||
|
mem=$(du $1 | tail -n1 | tr -cd [:digit:])
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#TESTS ON THE INITIAL CLONING
|
#TESTS ON THE INITIAL CLONING
|
||||||
test0(){
|
test0(){
|
||||||
section TEST0
|
section TEST0
|
||||||
echo "TEST 0 : case of classic cloning."
|
echo "TEST 0 : case of classic cloning."
|
||||||
git clone --progress --no-local $1 2> cloning_text
|
git clone --progress --no-local $1 2> cloning_text
|
||||||
mem0=$(du ./$REPO_NAME | tail -n1 | tr -cd [:digit:])
|
get_storage_used "./$REPO_NAME"
|
||||||
bw0=$(grep -e "Receiving objects:" cloning_text| grep -o "[[:digit:].]* MiB " | tail -n1)
|
bw0=$(grep -e "Receiving objects:" cloning_text| grep -o "[[:digit:].]* MiB " | tail -n1)
|
||||||
echo "memory usage in a classic cloning : $mem0"
|
echo "memory usage in a classic cloning : $mem"
|
||||||
echo "bandwidth usage : $bw0"
|
echo "bandwidth usage : $bw0"
|
||||||
run rm cloning_text
|
run rm cloning_text
|
||||||
run rm -rf $REPO_NAME
|
run rm -rf $REPO_NAME
|
||||||
@ -38,9 +52,9 @@ test1(){
|
|||||||
section TEST1
|
section TEST1
|
||||||
echo "TEST 1 : case of --single-branch cloning."
|
echo "TEST 1 : case of --single-branch cloning."
|
||||||
git clone --progress --single-branch --no-local $1 2> cloning_text
|
git clone --progress --single-branch --no-local $1 2> cloning_text
|
||||||
mem1=$(du ./$REPO_NAME| tail -n1 | tr -cd [:digit:])
|
get_storage_used ./$REPO_NAME
|
||||||
bw1=$(grep -e "Receiving objects:" cloning_text| grep -o "[[:digit:].]* MiB " | tail -n1)
|
bw1=$(grep -e "Receiving objects:" cloning_text| grep -o "[[:digit:].]* MiB " | tail -n1)
|
||||||
echo "memory usage in a --single-branch cloning : $mem1"
|
echo "memory usage in a --single-branch cloning : $mem"
|
||||||
echo "bandwidth usage : $bw1"
|
echo "bandwidth usage : $bw1"
|
||||||
run rm cloning_text
|
run rm cloning_text
|
||||||
run rm -rf $REPO_NAME
|
run rm -rf $REPO_NAME
|
||||||
@ -50,9 +64,9 @@ test2(){
|
|||||||
section TEST2
|
section TEST2
|
||||||
echo "TEST 2 : case of --depth=1 --no-single-branch"
|
echo "TEST 2 : case of --depth=1 --no-single-branch"
|
||||||
git clone --progress --depth=1 --no-local --no-single-branch $1 2> cloning_text
|
git clone --progress --depth=1 --no-local --no-single-branch $1 2> cloning_text
|
||||||
mem2=$(du ./$REPO_NAME| tail -n1 | tr -cd [:digit:])
|
get_storage_used ./$REPO_NAME
|
||||||
bw2=$(grep -e "Receiving objects:" cloning_text| grep -o "[[:digit:].]* MiB " | tail -n1)
|
bw2=$(grep -e "Receiving objects:" cloning_text| grep -o "[[:digit:].]* MiB " | tail -n1)
|
||||||
echo "memory usage in a --depth=1 --no-single-branch cloning : $mem2"
|
echo "memory usage in a --depth=1 --no-single-branch cloning : $mem"
|
||||||
echo "bandwidth usage : $bw2"
|
echo "bandwidth usage : $bw2"
|
||||||
run rm cloning_text
|
run rm cloning_text
|
||||||
run rm -rf $REPO_NAME
|
run rm -rf $REPO_NAME
|
||||||
@ -62,9 +76,9 @@ test3(){
|
|||||||
section TEST3
|
section TEST3
|
||||||
echo "TEST 3 : case of --depth=1 with single-branch (default))"
|
echo "TEST 3 : case of --depth=1 with single-branch (default))"
|
||||||
git clone --progress --single-branch --no-local --depth=1 $1 2> cloning_text
|
git clone --progress --single-branch --no-local --depth=1 $1 2> cloning_text
|
||||||
mem3=$(du ./$REPO_NAME| tail -n1 | tr -cd [:digit:])
|
get_storage_used ./$REPO_NAME
|
||||||
bw3=$(grep -e "Receiving objects:" cloning_text| grep -o "[[:digit:].]* MiB " | tail -n1)
|
bw3=$(grep -e "Receiving objects:" cloning_text| grep -o "[[:digit:].]* MiB " | tail -n1)
|
||||||
echo "memory usage in a --depth=1 with single-branch cloning : $mem3"
|
echo "memory usage in a --depth=1 with single-branch cloning : $mem"
|
||||||
echo "bandwidth usage : $bw3"
|
echo "bandwidth usage : $bw3"
|
||||||
run rm cloning_text
|
run rm cloning_text
|
||||||
run rm -rf $REPO_NAME
|
run rm -rf $REPO_NAME
|
||||||
@ -78,12 +92,12 @@ test4(){
|
|||||||
run git init -q
|
run git init -q
|
||||||
run git config core.sparsecheckout true
|
run git config core.sparsecheckout true
|
||||||
run echo $FILES_TO_KEEP >> .git/info/sparse-checkout
|
run echo $FILES_TO_KEEP >> .git/info/sparse-checkout
|
||||||
run git remote add -f origin file://$1 #&> /dev/null
|
run git remote add -f origin ../$1 &> /dev/null
|
||||||
run git pull origin main #&> /dev/null
|
run git pull origin main &> /dev/null
|
||||||
mem4=$(du . | tail -n1 | tr -cd [:digit:])
|
get_storage_used .
|
||||||
echo "memory usage: $mem4"
|
echo "memory usage: $mem"
|
||||||
echo "The bandwidth usage is not available through the Git commands."
|
echo "bandwidth usage unknown"
|
||||||
run rm cloning_text
|
cd ..
|
||||||
run rm -rf $REPO_NAME
|
run rm -rf $REPO_NAME
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -96,19 +110,21 @@ test5(){
|
|||||||
cd $REPO_NAME
|
cd $REPO_NAME
|
||||||
run git fetch --progress origin &> /dev/null
|
run git fetch --progress origin &> /dev/null
|
||||||
run git merge --progress origin &> /dev/null
|
run git merge --progress origin &> /dev/null
|
||||||
mem5before=$(du . | tail -n1 | tr -cd [:digit:])
|
get_storage_used .
|
||||||
|
mem_before=$mem
|
||||||
#modification of the remote repo
|
#modification of the remote repo
|
||||||
cd ../$REMOTE
|
cd ../$REMOTE
|
||||||
run dd if=/dev/urandom of=sample5 bs=1M count=1 &> /dev/null #adding a 1M file
|
create_random_file 'sample5' '1M' #adding a 1M file
|
||||||
run git add sample5
|
run git add sample5
|
||||||
run git commit --quiet -m"fourth 1M sample created"
|
run git commit --quiet -m"fourth 1M sample created"
|
||||||
cd ../../$REPO_NAME
|
cd ../../$REPO_NAME
|
||||||
run git fetch --progress origin &> fetching_text
|
run git fetch --progress origin &> fetching_text
|
||||||
run git merge --progress &> merging_text
|
run git merge --progress &> merging_text
|
||||||
mem5after=$(du . | tail -n1 | tr -cd [:digit:])
|
get_storage_used .
|
||||||
mem5=$(($mem5after-$mem5before))
|
mem_after=$mem
|
||||||
|
mem=$(($mem_after-$mem_before))
|
||||||
bw5=$(grep -e "\->" merging_text| grep -o "[[:digit:].]* -> [[:digit:].]* [[:alpha:]]*")
|
bw5=$(grep -e "\->" merging_text| grep -o "[[:digit:].]* -> [[:digit:].]* [[:alpha:]]*")
|
||||||
echo "memory usage: $mem5"
|
echo "memory usage: +$mem"
|
||||||
echo "bandwidth usage: $bw5"
|
echo "bandwidth usage: $bw5"
|
||||||
cd ../$REMOTE
|
cd ../$REMOTE
|
||||||
git reset --hard -q a99be63309fc4f4600210000583546d966d12d4f
|
git reset --hard -q a99be63309fc4f4600210000583546d966d12d4f
|
||||||
@ -123,7 +139,8 @@ test6(){
|
|||||||
cd $REPO_NAME
|
cd $REPO_NAME
|
||||||
run git fetch --progress origin &> /dev/null
|
run git fetch --progress origin &> /dev/null
|
||||||
run git merge --progress origin &> /dev/null
|
run git merge --progress origin &> /dev/null
|
||||||
mem6before=$(du . | tail -n1 | tr -cd [:digit:])
|
get_storage_used .
|
||||||
|
mem_before=$mem
|
||||||
#modification of the remote repo
|
#modification of the remote repo
|
||||||
cd ../$REMOTE
|
cd ../$REMOTE
|
||||||
run rm sample0
|
run rm sample0
|
||||||
@ -132,10 +149,11 @@ test6(){
|
|||||||
cd ../../$REPO_NAME
|
cd ../../$REPO_NAME
|
||||||
run git fetch --progress origin &> fetching_text
|
run git fetch --progress origin &> fetching_text
|
||||||
run git merge --progress &> merging_text
|
run git merge --progress &> merging_text
|
||||||
mem6after=$(du . | tail -n1 | tr -cd [:digit:])
|
get_storage_used .
|
||||||
mem6=$(($mem6after-$mem6before))
|
mem_after=$mem
|
||||||
|
mem=$(($mem_after-$mem_before))
|
||||||
bw6=$(grep -e "\->" merging_text| grep -o "[[:digit:].]* -> [[:digit:].]* [[:alpha:]]*")
|
bw6=$(grep -e "\->" merging_text| grep -o "[[:digit:].]* -> [[:digit:].]* [[:alpha:]]*")
|
||||||
echo "memory usage: $mem6"
|
echo "memory usage: $mem"
|
||||||
echo "bandwidth usage: $bw6"
|
echo "bandwidth usage: $bw6"
|
||||||
cd ../$REMOTE
|
cd ../$REMOTE
|
||||||
git reset --hard -q a99be63309fc4f4600210000583546d966d12d4f
|
git reset --hard -q a99be63309fc4f4600210000583546d966d12d4f
|
||||||
@ -150,10 +168,11 @@ test7(){
|
|||||||
cd $REPO_NAME
|
cd $REPO_NAME
|
||||||
run git fetch --progress origin &> /dev/null
|
run git fetch --progress origin &> /dev/null
|
||||||
run git merge --progress origin &> /dev/null
|
run git merge --progress origin &> /dev/null
|
||||||
mem7before=$(du . | tail -n1 | tr -cd [:digit:])
|
get_storage_used .
|
||||||
|
mem_before=$mem
|
||||||
#modification of the remote repo
|
#modification of the remote repo
|
||||||
cd ../$REMOTE
|
cd ../$REMOTE
|
||||||
run dd if=/dev/urandom of=sample5 bs=1M count=1 &> /dev/null #adding a 1M file
|
create_random_file 'sample5' '1M' #adding a 1M file
|
||||||
run git add sample5
|
run git add sample5
|
||||||
run git commit --quiet -m"fourth 1M sample created"
|
run git commit --quiet -m"fourth 1M sample created"
|
||||||
run rm sample5
|
run rm sample5
|
||||||
@ -162,17 +181,17 @@ test7(){
|
|||||||
cd ../../$REPO_NAME
|
cd ../../$REPO_NAME
|
||||||
run git fetch --progress origin &> fetching_text
|
run git fetch --progress origin &> fetching_text
|
||||||
run git merge --progress &> merging_text
|
run git merge --progress &> merging_text
|
||||||
mem7after=$(du . | tail -n1 | tr -cd [:digit:])
|
get_storage_used .
|
||||||
mem7=$(($mem7after-$mem7before))
|
mem_after=$mem
|
||||||
bw7=$(grep -e "\->" merging_text| grep -o "[[:digit:].]* -> [[:digit:].]* [[:alpha:]]*")
|
mem=$(($mem_after-$mem_before))
|
||||||
echo "memory usage: $mem7"
|
echo "memory usage: $mem"
|
||||||
echo "bandwidth usage unknown"
|
echo "bandwidth usage unknown"
|
||||||
cd ../$REMOTE
|
cd ../$REMOTE
|
||||||
git reset --hard -q a99be63309fc4f4600210000583546d966d12d4f
|
git reset --hard -q a99be63309fc4f4600210000583546d966d12d4f
|
||||||
cd ../..
|
cd ../..
|
||||||
rm -rf performance_testing
|
rm -rf performance_testing
|
||||||
}
|
}
|
||||||
#modify to have a history of changes
|
|
||||||
#test 7 : --depth=1
|
#test 7 : --depth=1
|
||||||
#normalement supprime aussi l'historique
|
#normalement supprime aussi l'historique
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user