-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrun_benchmarks.sh
More file actions
executable file
·68 lines (52 loc) · 2.36 KB
/
Copy pathrun_benchmarks.sh
File metadata and controls
executable file
·68 lines (52 loc) · 2.36 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
#!/bin/bash
set -e
# TODO: delete the bucket from s3 after benchmarks are done
echo "Building VecPuff server..."
cargo build --release --bin server
# Also kill any other server processes on port 3000
pkill -f "target/release/server" 2>/dev/null || true
echo "Starting VecPuff server (runtime logs captured to server.log)..."
RUST_LOG=info ./target/release/server > server.log 2>&1 &
SERVER_PID=$!
sleep 3
echo "Running benchmarks..."
cd vecpuff-bench
# Create results directory
mkdir -p benchmark_results
# Latency benchmark with SIFT1M dataset - realistic scale testing
echo "Running latency benchmark with SIFT1M dataset..."
uv run vecpuff-bench latency --dataset-size 1000000 --dataset-type sift --query-count 100 --warmup-queries 10 --output benchmark_results/latency_results.json
# Throughput benchmark - measures concurrent query performance
echo "Running throughput benchmark..."
uv run vecpuff-bench throughput --dataset-size 1000000 --concurrency 10 --duration 30 --output benchmark_results/throughput_results.json
# Accuracy benchmark with ground truth validation
echo "Running accuracy benchmark..."
uv run vecpuff-bench accuracy --dataset-size 500000 --dataset-type sift --query-count 50 --output benchmark_results/accuracy_results.json
# Generate comprehensive report
echo "Generating comprehensive benchmark report..."
uv run vecpuff-bench report benchmark_results/latency_results.json benchmark_results/throughput_results.json benchmark_results/accuracy_results.json --output-dir benchmark_results
cd ..
echo "Done!"
echo ""
echo "BENCHMARK RESULTS SAVED:"
echo " Individual results: vecpuff-bench/benchmark_results/"
echo " - latency_results.json"
echo " - throughput_results.json"
echo " - accuracy_results.json"
echo " Comprehensive report: vecpuff-bench/benchmark_results/"
echo " - results.json (all data)"
echo " - results.csv (spreadsheet)"
echo " - summary.txt (text summary)"
echo " Server logs: server.log"
echo ""
echo "View summary: cat vecpuff-bench/benchmark_results/summary.txt"
# Cleanup - more robust process killing
echo "Cleaning up server process..."
if [ ! -z "$SERVER_PID" ]; then
kill $SERVER_PID 2>/dev/null || true
# Wait a bit and force kill if still running
sleep 2
kill -9 $SERVER_PID 2>/dev/null || true
fi
# Also kill any other server processes on port 3000
pkill -f "target/release/server" 2>/dev/null || true