ldap: Add ldap lookup benchmark master
authorKai Blin <kai@samba.org>
Sat, 12 Sep 2009 23:46:48 +0000 (01:46 +0200)
committerKai Blin <kai@samba.org>
Sun, 13 Sep 2009 00:54:16 +0000 (02:54 +0200)
ad-bench.sh
time_ldap.sh [new file with mode: 0644]

index fe1acc9a3904d1e2da4e0bba26bd8c282abf3149..132a02503b2b7dce5b5683b2ee0f1f1f348f91f3 100755 (executable)
@@ -15,6 +15,7 @@ for run in `cat $RUNS`; do
        bash `dirname $0`/time_join.sh `echo $run|cut -d ":" -f 1` `echo $run|cut -d ":" -f 2`
        bash `dirname $0`/time_user.sh `echo $run|cut -d ":" -f 1` `echo $run|cut -d ":" -f 2`
        bash `dirname $0`/time_group.sh `echo $run|cut -d ":" -f 1` `echo $run|cut -d ":" -f 2`
+       bash `dirname $0`/time_ldap.sh `echo $run|cut -d ":" -f 1` `echo $run|cut -d ":" -f 2`
        echo "END RUN"
 done
 
diff --git a/time_ldap.sh b/time_ldap.sh
new file mode 100644 (file)
index 0000000..c485ac9
--- /dev/null
@@ -0,0 +1,138 @@
+#!/bin/bash
+
+ITERATIONS=100
+
+source `dirname $0`/utils.sh
+
+PRINCIPAL=$(get_principal $1)
+PASSWORD=$(get_password $1)
+REALM=$(get_realm $1)
+NT_DOM=$(get_nt_dom $1)
+SERVER=$2
+
+search_users () {
+       ${NET} ads search '(objectCategory=user)' sAMAccountName -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
+       RET=$?
+       if [ $RET -ne 0 ]; then
+               echo "${NET} returned error: $RET"
+               exit 1
+       fi
+}
+
+search_groups () {
+       ${NET} ads search '(objectCategory=group)' sAMAccountName -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
+       if [ $RET -ne 0 ]; then
+               echo "${NET} returned error: $RET"
+               exit 1
+       fi
+}
+
+search_computers () {
+       ${NET} ads search '(objectCategory=computer)' sAMAccountName -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
+       if [ $RET -ne 0 ]; then
+               echo "${NET} returned error: $RET"
+               exit 1
+       fi
+}
+
+search_wildcard () {
+       ${NET} ads search '(objectCategory=*)' sAMAccountName -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
+       if [ $RET -ne 0 ]; then
+               echo "${NET} returned error: $RET"
+               exit 1
+       fi
+}
+
+search_unindexed () {
+       ${NET} ads search '(description=Built-in account for adminstering the computer/domain)' sAMAccountName -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
+       if [ $RET -ne 0 ]; then
+               echo "${NET} returned error: $RET"
+               exit 1
+       fi
+}
+
+set_up () {
+       set_krb_env
+       setup_kinit
+       call_kinit "${PRINCIPAL}" "${PASSWORD}"
+       write_configfile "${REALM}" "${NT_DOM}"
+}
+
+tear_down () {
+       ${KDESTROY}
+       restore_krb_env
+}
+
+set_up
+
+echo -e "\tSEARCH INDEXED $2"
+
+START_TIME=$(start_timer)
+
+echo -en "\t"
+for i in $( ${SEQ} 1 $ITERATIONS ); do
+       search_users
+       search_groups
+       search_computers
+       echo -n "."
+done
+echo "done"
+
+STOP_TIME=$(stop_timer)
+
+TOTAL_TIME=$( total_time $START_TIME $STOP_TIME )
+
+echo -e "\t\ttotal time:\t\t${TOTAL_TIME}s"
+
+LOGINS_PER_MINUTE=$(iterations_per_minute $START_TIME $STOP_TIME $ITERATIONS)
+
+echo -e "\t\titerations/min:\t\t$LOGINS_PER_MINUTE"
+
+########################
+
+echo -e "\tSEARCH WILDCARD $2"
+
+START_TIME=$(start_timer)
+
+echo -en "\t"
+for i in $( ${SEQ} 1 $ITERATIONS ); do
+       search_wildcard
+       echo -n "."
+done
+echo "done"
+
+STOP_TIME=$(stop_timer)
+
+TOTAL_TIME=$( total_time $START_TIME $STOP_TIME )
+
+echo -e "\t\ttotal time:\t\t${TOTAL_TIME}s"
+
+LOGINS_PER_MINUTE=$(iterations_per_minute $START_TIME $STOP_TIME $ITERATIONS)
+
+echo -e "\t\titerations/min:\t\t$LOGINS_PER_MINUTE"
+
+########################
+
+echo -e "\tSEARCH UNINDEXED $2"
+
+START_TIME=$(start_timer)
+
+echo -en "\t"
+for i in $( ${SEQ} 1 $ITERATIONS ); do
+       search_unindexed
+       echo -n "."
+done
+echo "done"
+
+STOP_TIME=$(stop_timer)
+
+TOTAL_TIME=$( total_time $START_TIME $STOP_TIME )
+
+echo -e "\t\ttotal time:\t\t${TOTAL_TIME}s"
+
+LOGINS_PER_MINUTE=$(iterations_per_minute $START_TIME $STOP_TIME $ITERATIONS)
+
+echo -e "\t\titerations/min:\t\t$LOGINS_PER_MINUTE"
+
+tear_down
+