LDAP-UX Integration Performance and Tuning Guidelines
Appendix A dirload Tool
The script on the following page can be used to monitor load on your directory server for an extended period of
time. To install this file on your directory server, cut and paste the script below. It will be saved under
/tmp/dirload. This script is designed to monitor load from LDAP-UX clients. It assumes that only LDAP-UX
clients are accessing the directory server being measured. It does not make an accurate measurement of requests
from other types of applications.
cat > /tmp/dirload << “EOF”
#!/usr/bin/ksh
dirname="$(basename "$(pwd)")"
if [[ "${dirname#slapd-}" = "${dirname}" ]]
then
echo "This tool must be run from the parent directory of the slapd server"
echo ".../servers/slapd-[servername]"
exit 1
fi
integer hours=$1
if (( hours == 0 ))
then
echo "Usage: $(basename $0) <number of hours to monitor server>"
exit 1
fi
./monitor > /dev/null
err=$?
if (( $err ))
then
echo "Unable to connect to the directory server, error $err"
exit 1
fi
integer lastops=$(./monitor | grep "opsinitiated: " | cut -d" " -f 2)
integer seconds=hours*3600
totalsecs=$seconds
integer curops=0
integer totalops=0
integer maxops=0
integer deltaops=0
# Ten minutes between samples
SleepTime=600
echo "Monitoring $(basename $(pwd)), updates every $SleepTime seconds."
echo " Time Range # of Operations"
while (( seconds > 0 ))
do
StartTime="$(date +"%b %d %R")"
sleep ${SleepTime}
seconds=seconds-${SleepTime}
curops=$(monitor | grep "opsinitiated: " | cut -d" " -f 2)
EndTime="$(date +"%R")"
deltaops=curops-lastops
# A single name service request generats two options, so divide this
# number by 2.
deltaops=deltaops/2
# The monitor command also generates a request.
deltaops=deltaops-1
totalops=totalops+deltaops
echo "${StartTime}-${EndTime} : ${deltaops}"
lastops=curops
if (( deltaops > maxops ))
then
maxops=deltaops
fi
done
echo "Completed. Total operations in $hours hours: $totalops."
AvgOpsPerSec=$(echo "scale=10 ; $totalops / $totalsecs" | bc)
MaxOpsPerSec=$(echo "scale=10 ; $maxops / $SleepTime" | bc)
echo "Average number of requests per second: ${AvgOpsPerSec}"
echo "Peak number of requests per second: ${MaxOpsPerSec}"
EOF
chmod 750 /tmp/dirload
Page 16