Skip to content

Instantly share code, notes, and snippets.

@akrzos
Created May 6, 2015 13:46
Show Gist options
  • Save akrzos/8bad67dc4588b85ecfcb to your computer and use it in GitHub Desktop.
Save akrzos/8bad67dc4588b85ecfcb to your computer and use it in GitHub Desktop.
#!/bin/bash
if [ ! $# == 1 ]; then
echo "Usage: ./r71-cap-sync-testcase-v1.sh <testname>"
echo "Example: time ./r71-cap-sync-testcase-v1.sh tc-r7-0001"
exit
fi
testprefix=$1
. r71-environments.sh
# for environment in 0 3 6 9 10 11 23 35
for environment in 0
do
# for numCapsules in 2 4 6 8 10 12 14 16 18 20
for numCapsules in 20
do
#testname="${testprefix}-${numCapsules}c-${environmentName[${environment}]}"
testname="${testprefix}"
echo "--------------------------------------------------------------------"
echo "[$(date -R)] Num Capsules: ${numCapsules}"
echo "[$(date -R)] Environment ID: ${environmentid[${environment}]}"
echo "[$(date -R)] Environment Name: ${environmentName[${environment}]}"
echo "[$(date -R)] Test Name: ${testname}"
echo "--------------------------------------------------------------------"
# Add Cap Lifecycle Env
for numcap in `seq 1 ${numCapsules}`; do
capid=`expr ${numcap} + 1`
echo "[$(date -R)] Adding Lifecycle Environment to Capsule: ${numcap}"
echo "hammer -u admin -p changeme capsule content add-lifecycle-environment --environment-id ${environmentid[${environment}]} --id ${capid}"
# ssh root@perfc-380g8-01 "hammer -u admin -p changeme capsule content add-lifecycle-environment --environment-id ${environmentid[${environment}]} --id ${capid}"
done
# 1 for shorter sync tests
toolinterval=1
# Register Tools
echo "----------------------------------"
echo "[$(date -R)] Register Tools on Satellite 6 (perfc-380g8-01)"
register-tool --name=vmstat --group sat6 --remote=perfc-380g8-01 -- --interval ${toolinterval}
register-tool --name=mpstat --group sat6 --remote=perfc-380g8-01 -- --interval ${toolinterval}
register-tool --name=iostat --group sat6 --remote=perfc-380g8-01 -- --interval ${toolinterval}
register-tool --name=pidstat --group sat6 --remote=perfc-380g8-01 -- --interval ${toolinterval}
register-tool --name=sar --group sat6 --remote=perfc-380g8-01 -- --interval ${toolinterval}
register-tool --name=proc-vmstat --group sat6 --remote=perfc-380g8-01 -- --interval ${toolinterval}
#register-tool --name=perf --group sat6 --remote=perfc-380g8-01 -- --record-opts="record -a --freq=100"
for numcap in `seq -f "%03g" 1 ${numCapsules}`; do
echo "[$(date -R)] Starting pbench on capsule-r7-${numcap}"
register-tool --name=vmstat --group sat6 --remote=capsule-r7-${numcap} -- --interval ${toolinterval}
register-tool --name=mpstat --group sat6 --remote=capsule-r7-${numcap} -- --interval ${toolinterval}
register-tool --name=iostat --group sat6 --remote=capsule-r7-${numcap} -- --interval ${toolinterval}
register-tool --name=pidstat --group sat6 --remote=capsule-r7-${numcap} -- --interval ${toolinterval}
register-tool --name=sar --group sat6 --remote=capsule-r7-${numcap} -- --interval ${toolinterval}
register-tool --name=proc-vmstat --group sat6 --remote=capsule-r7-${numcap} -- --interval ${toolinterval}
#register-tool --name=perf --group sat6 --remote=capsule-r7-${numcap} -- --record-opts="record -a --freq=100"
done;
echo "[$(date -R)] Done registering pbench tools on Sat6 and capsules ..."
echo "----------------------------------"
# Time 3 tries
for attempt in 1 2 3
do
nCap=`printf "%03d" ${numCapsules}`
iter="${nCap}c-${environmentName[${environment}]}-${attempt}"
# Start pbench on Sat6 and Capsules
# Also make the directory for pbench output on each host
echo "----------------------------------"
echo "[$(date -R)] Starting pbench..."
mkdir -p /var/lib/pbench/${testname}/${iter}
ssh root@perfc-380g8-01 "mkdir -p /var/lib/pbench/${testname}/${iter}"
for numcap in `seq -f "%03g" 1 ${numCapsules}`; do
ssh root@capsule-r7-${numcap} "mkdir -p /var/lib/pbench/${testname}/${iter}"
done;
start-tools --group=sat6 --dir=/var/lib/pbench/${testname}/${iter} --iteration=${iter} 2>&1 >/dev/null
echo "[$(date -R)] Done starting pbench"
echo "----------------------------------"
# Wait several seconds before kicking off workload
sleep 5
# Perform Sync and time results
for numcap in `seq 1 ${numCapsules}`; do
nCap=`printf "%03d" ${numcap}`
capid=`expr ${numcap} + 1`
echo "[$(date -R)] Starting Capsule Synchronize: ${numcap}"
echo "hammer -u admin -p changeme capsule content synchronize --id ${capid}"
# ssh root@perfc-380g8-01 "(time hammer -u admin -p changeme capsule content synchronize --id ${capid}) >> ${testname}.${iter}.${nCap} 2>&1" &
done
echo "[$(date -R)] Waiting for Sync to finish on Capsules"
wait
echo "[$(date -R)] Syncs finished on Capsules"
echo "----------------------------------"
# Wait several seconds before stopping monitoring
sleep 5
# Stop pbench:
echo "----------------------------------"
echo "[$(date -R)] Stopping pbench..."
stop-tools --group=sat6 --dir=/var/lib/pbench/${testname}/${iter} --iteration=${iter}
echo "[$(date -R)] Done stopping pbench"
echo "----------------------------------"
echo "----------------------------------"
echo "[$(date -R)] Post Process on pbench..."
postprocess-tools --group=sat6 --dir=/var/lib/pbench/${testname}/${iter} --iteration=${iter}
echo "[$(date -R)] Done waiting for pbench postprocess"
echo "----------------------------------"
# Move Results....
move-results
# Reset DB on capsules:
echo "----------------------------------"
for numcap in `seq -f "%03g" 1 ${numCapsules}`; do
echo "[$(date -R)] Resetting DB on capsule-r7-${numcap}"
# ssh root@capsule-r7-${numcap} "./reset-capsule.sh /home/backup/last-clean" > /dev/null 2>&1 &
done;
echo "[$(date -R)] Waiting for Capsules to reset their databases..."
wait
sleep 20
echo "[$(date -R)] Done waiting for Capsules to reset their databases... "
echo "----------------------------------"
done # Loop over attempts
# Clear Tools
clear-tools -g sat6
# Remove Lifecycle environments:
for numcap in `seq 1 ${numCapsules}`; do
capid=`expr ${numcap} + 1`
echo "[$(date -R)] Removing Lifecycle Environment to Capsule: ${numcap}"
echo "hammer -u admin -p changeme capsule content remove-lifecycle-environment --environment-id ${environmentid[${environment}]} --id ${capid}"
# ssh root@perfc-380g8-01 "hammer -u admin -p changeme capsule content remove-lifecycle-environment --environment-id ${environmentid[${environment}]} --id ${capid}"
done
done # Loop over Number of Capsules
done # Loop over Environments to sync against.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment