Restconf: get well-known, top-level resource, yang library version, put whole datastore,
check for different keys in put lists.
This commit is contained in:
parent
1ee3f7e67e
commit
26667b2c2f
11 changed files with 759 additions and 91 deletions
|
|
@ -2,7 +2,7 @@
|
|||
# Transactions per second for large lists read/write plotter using gnuplot
|
||||
#
|
||||
. ./lib.sh
|
||||
max=1000 # Nr of db entries
|
||||
max=200 # Nr of db entries
|
||||
step=100
|
||||
reqs=1000
|
||||
cfg=$dir/scaling-conf.xml
|
||||
|
|
@ -48,27 +48,55 @@ EOF
|
|||
run(){
|
||||
nr=$1 # Number of entries in DB
|
||||
reqs=$2
|
||||
write=$3
|
||||
mode=$3
|
||||
|
||||
echo -n "<rpc><edit-config><target><candidate/></target><config><x>" > $fconfig
|
||||
echo -n "<rpc><edit-config><target><candidate/></target><default-operation>replace</default-operation><config><x>" > $fconfig
|
||||
for (( i=0; i<$nr; i++ )); do
|
||||
echo -n "<c>$i</c>" >> $fconfig
|
||||
echo -n "<y><a>$i</a><b>$i</b></y>" >> $fconfig
|
||||
done
|
||||
echo "</x></config></edit-config></rpc>]]>]]>" >> $fconfig
|
||||
|
||||
expecteof_file "$clixon_netconf -qf $cfg -y $fyang" "$fconfig" "^<rpc-reply><ok/></rpc-reply>]]>]]>$"
|
||||
|
||||
if $write; then
|
||||
time -p for (( i=0; i<$reqs; i++ )); do
|
||||
rnd=$(( ( RANDOM % $nr ) ))
|
||||
echo "<rpc><edit-config><target><candidate/></target><config><x><y><a>$rnd</a><b>$rnd</b></y></x></config></edit-config></rpc>]]>]]>"
|
||||
done | $clixon_netconf -qf $cfg -y $fyang > /dev/null
|
||||
else # read
|
||||
case $mode in
|
||||
readlist)
|
||||
time -p for (( i=0; i<$reqs; i++ )); do
|
||||
rnd=$(( ( RANDOM % $nr ) ))
|
||||
echo "<rpc><get-config><source><candidate/></source><filter type=\"xpath\" select=\"/x/y[a=$rnd][b=$rnd]\" /></get-config></rpc>]]>]]>"
|
||||
done | $clixon_netconf -qf $cfg -y $fyang > /dev/null
|
||||
fi
|
||||
;;
|
||||
writelist)
|
||||
time -p for (( i=0; i<$reqs; i++ )); do
|
||||
rnd=$(( ( RANDOM % $nr ) ))
|
||||
echo "<rpc><edit-config><target><candidate/></target><config><x><y><a>$rnd</a><b>$rnd</b></y></x></config></edit-config></rpc>]]>]]>"
|
||||
done | $clixon_netconf -qf $cfg -y $fyang > /dev/null
|
||||
;;
|
||||
readleaflist)
|
||||
time -p for (( i=0; i<$reqs; i++ )); do
|
||||
rnd=$(( ( RANDOM % $nr ) ))
|
||||
echo "<rpc><get-config><source><candidate/></source><filter type=\"xpath\" select=\"/x[c=$rnd]\" /></get-config></rpc>]]>]]>"
|
||||
done | $clixon_netconf -qf $cfg -y $fyang > /dev/null
|
||||
;;
|
||||
writeleaflist)
|
||||
time -p for (( i=0; i<$reqs; i++ )); do
|
||||
rnd=$(( ( RANDOM % $nr ) ))
|
||||
echo "<rpc><edit-config><target><candidate/></target><config><x><c>$rnd</c></x></config></edit-config></rpc>]]>]]>"
|
||||
done | $clixon_netconf -qf $cfg -y $fyang > /dev/null
|
||||
;;
|
||||
esac
|
||||
expecteof "$clixon_netconf -qf $cfg" "<rpc><discard-changes/></rpc>]]>]]>" "^<rpc-reply><ok/></rpc-reply>]]>]]>$"
|
||||
}
|
||||
|
||||
step(){
|
||||
i=$1
|
||||
mode=$2
|
||||
echo -n "" > $fconfig
|
||||
t=$(TEST=%e run $i $reqs $mode $ 2>&1 | awk '/real/ {print $2}')
|
||||
# t is time in secs of $reqs -> transactions per second. $reqs
|
||||
p=$(echo "$reqs/$t" | bc -lq)
|
||||
# p is transactions per second.
|
||||
echo "$i $p" >> $dir/$mode
|
||||
}
|
||||
|
||||
once()(
|
||||
|
|
@ -84,18 +112,19 @@ once()(
|
|||
err
|
||||
fi
|
||||
|
||||
# Always as a start
|
||||
for (( i=10; i<=$step; i=i+10 )); do
|
||||
step $i readlist
|
||||
step $i writelist
|
||||
step $i readleaflist
|
||||
step $i writeleaflist
|
||||
done
|
||||
# Actual steps
|
||||
for (( i=$step; i<=$max; i=i+$step )); do
|
||||
t=$(TEST=%e run $i $reqs true $ 2>&1 | awk '/real/ {print $2}')
|
||||
# t is time in secs of $reqs -> transactions per second. $reqs
|
||||
p=$(echo "$reqs/$t" | bc -lq)
|
||||
# p is transactions per second.
|
||||
echo "$i $p" >> $dir/write
|
||||
t=$(TEST=%e run $i $reqs false $ 2>&1 | awk '/real/ {print $2}')
|
||||
# t is time in secs of $reqs -> transactions per second. $reqs
|
||||
p=$(echo "$reqs/$t" | bc -lq)
|
||||
# p is transactions per second.
|
||||
echo "$i $p" >> $dir/read
|
||||
step $i readlist
|
||||
step $i readleaflist
|
||||
step $i writelist
|
||||
step $i writeleaflist
|
||||
done
|
||||
|
||||
# Check if still alive
|
||||
|
|
@ -118,7 +147,7 @@ set title "Clixon transactions per second r/w large lists" font ",14" textcolor
|
|||
set xlabel "entries"
|
||||
set ylabel "transactions per second"
|
||||
set terminal wxt enhanced title "CLixon transactions " persist raise
|
||||
plot "$dir/read" with linespoints title "read", "$dir/write" with linespoints title "write"
|
||||
plot "$dir/readlist" with linespoints title "read list", "$dir/writelist" with linespoints title "write list", "$dir/readleaflist" with linespoints title "read leaf-list", "$dir/writeleaflist" with linespoints title "write leaf-list"
|
||||
EOF
|
||||
|
||||
rm -rf $dir
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue