blob: 6c2f46b00fbd92a3c65d7da36f6a2651faafe43d [file] [log] [blame]
#!/bin/sh
# This script takes in the output of relative_times report and provides
# you with summary information.
# ./flood examples/round-robin.xml > report.out
# ./examples/analyze-relative report.out
# This script requires gawk.
if [ ! -f $1 ]; then
exit -1;
fi
echo "Slowest pages on average (worst 5):"
echo " Average times (sec)"
gawk 'BEGIN{printf("connect\twrite\tread\tclose\thits\tURL\n");}'
tail +1 $1 | gawk '
/OK.*https?/ {
split($8, urlarray, /\?/); url = urlarray[1]; ht[url] = url;
co[url] += ($2/1000000); wr[url] += ($3/1000000); re[url] += ($4/1000000);
cl[url] += ($5/1000000); cou[url]++; }
END {
for (i in ht) {
printf("%.4f\t%.4f\t%.4f\t%.4f\t%d\t%s\n", co[i]/cou[i], wr[i]/cou[i], re[i]/cou[i], cl[i]/cou[i], cou[i], i)
}
}' - | sort -rn -k3 | head -5
#echo "Most frequently hit pages (top 5):"
#tail +1 $1 | gawk '/OK.*https?/ {
# split($8, urlarray, /\?/); url = urlarray[1]; ht[url] = url;
# co[url] += ($2/1000000); wr[url] += ($3/1000000); re[url] += ($4/1000000);
# cl[url] += ($5/1000000); cou[url]++; }
#END {
# for (i in ht) {
# printf("%.4f\t%.4f\t%.4f\t%.4f\t%d\t%s\n", co[i]/cou[i], wr[i]/cou[i], re[i]/cou[i], cl[i]/cou[i], cou[i], i)
# }
#}' - | sort -rn +4 | head -5
# This gives a summary report.
grep OK $1 | gawk '{ a[$7] += ($5) / 1000000.00; b[$7]++ } END { for (i in a) if (a[i] != 0) { c[0] += b[i]; c[1] += a[i]; c[2] += b[i]/a[i]; c[3]++; }; printf "Requests: %d Time: %.2f Req/Sec: %.2f\n", c[0], c[1]/c[3], c[2] }' -