go压测
#!/usr/bin/env bash
split="_"
for count in 100 200 400 800; do
for rate in 40 60 80 100; do
bench_name="$count$split$rate"
rm -rf $bench_name
mkdir -p $bench_name
logDir["$index"]="$bench_name"
let "index=$index+1"
go test -bench="ABClientLog$bench_name" -benchmem -cpu=4 -benchtime=1x -cpuprofile=$bench_name/single_cpu.pprof -memprofile=$bench_name/single_mem.pprof >> $bench_name/single_bench.log
go test -bench="ABClientBatchLogId$bench_name" -benchmem -cpu=4 -benchtime=1x -cpuprofile=$bench_name/batch_cpu.pprof -memprofile=$bench_name/batch_mem.pprof >> $bench_name/batch_bench.log
done
done
数据统计
#!/usr/bin/env bash
split="_"
num1="1"
for count in 100 200 400 800; do
for rate in 40 60 80 100; do
bench_name="$count$split$rate"
cd $bench_name
sum=0
for cost in $(egrep "GetLogIdByUid" single_bench.log | awk -F " " '{print $7}' | less)
do
sum=$(awk "BEGIN{print $sum+$cost}")
done
nums=$(egrep "GetLogIdByUid" single_bench.log | wc -l)
avg_cost=$(awk "BEGIN{print $sum/$nums}")
hit_total=$(egrep "hit" single_bench.log | wc -l)
not_hit=$(egrep "not hit" single_bench.log | wc -l)
hit_rate=$(awk "BEGIN{print $not_hit / $hit_total}")
max_ts=$(egrep "GetLogIdByUid" single_bench.log | awk -F " " '{print $7}' | sort -nr | head -n 1)
echo $count, $rate, $sum, $nums, $(awk "BEGIN{print $num1-$hit_rate}"), $avg_cost, $max_ts
cd ..
done
done