storage and memory in separate functions

This commit is contained in:
eleonore12345 2024-07-04 11:01:04 +02:00
parent 912a969bdf
commit d4036f090e

View File

@ -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