Repository navigation
Expand file tree
/
Copy pathrun_all.sh
More file actions
73 lines (55 loc) · 1.7 KB
/
Copy pathrun_all.sh
File metadata and controls
73 lines (55 loc) · 1.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/usr/bin/env bash
set -euo pipefail
RESULTS_DIR="bench/results/$(date +%Y%m%d-%H%M%S)"
mkdir -p "${RESULTS_DIR}"
echo "Running all benchmark scenarios..."
echo "Results will be saved to: ${RESULTS_DIR}"
echo ""
echo "Starting test cluster..."
./scripts/serve.sh 1 1 &
CLUSTER_PID=$!
sleep 5
cleanup() {
echo "Stopping cluster..."
kill ${CLUSTER_PID} 2>/dev/null || true
wait ${CLUSTER_PID} 2>/dev/null || true
}
trap cleanup EXIT
scenarios=(
"write-heavy:Write-Heavy (90% writes)"
"read-heavy:Read-Heavy (90% reads)"
)
for scenario in "${scenarios[@]}"; do
IFS=':' read -r name desc <<< "$scenario"
echo ""
echo "Running: ${desc}"
echo "-----------------------------------"
k6 run \
--out json="${RESULTS_DIR}/${name}.json" \
--summary-export="${RESULTS_DIR}/${name}-summary.json" \
"bench/scenarios/${name}.js" \
2>&1 | tee "${RESULTS_DIR}/${name}.log"
echo "[OK] ${desc} completed"
done
echo ""
echo "All benchmarks completed!"
echo "Results: ${RESULTS_DIR}"
cat > "${RESULTS_DIR}/SUMMARY.md" << EOF
# Benchmark Results
**Date:** $(date)
**Cluster:** 1 coordinator + 1 volume
**Machine:** $(uname -m)
## Scenarios
EOF
for scenario in "${scenarios[@]}"; do
IFS=':' read -r name desc <<< "$scenario"
if [ -f "${RESULTS_DIR}/${name}-summary.json" ]; then
echo "### ${desc}" >> "${RESULTS_DIR}/SUMMARY.md"
echo "\`\`\`" >> "${RESULTS_DIR}/SUMMARY.md"
jq . "${RESULTS_DIR}/${name}-summary.json" >> "${RESULTS_DIR}/SUMMARY.md"
echo "\`\`\`" >> "${RESULTS_DIR}/SUMMARY.md"
echo "" >> "${RESULTS_DIR}/SUMMARY.md"
fi
done
echo ""
echo "Summary report: ${RESULTS_DIR}/SUMMARY.md"