optimizing badger cache, won a 10-15% improvement in most benchmarks

This commit is contained in:
2025-11-16 15:07:36 +00:00
parent 9bb3a7e057
commit 95bcf85ad7
72 changed files with 8158 additions and 4048 deletions

View File

@@ -0,0 +1,80 @@
#!/bin/bash
# Run benchmark for ORLY only (no other relays)
set -e
cd "$(dirname "$0")"
# Determine docker-compose command
if docker compose version &> /dev/null 2>&1; then
DOCKER_COMPOSE="docker compose"
else
DOCKER_COMPOSE="docker-compose"
fi
# Clean old data directories (may be owned by root from Docker)
if [ -d "data" ]; then
echo "Cleaning old data directories..."
if ! rm -rf data/ 2>/dev/null; then
echo ""
echo "ERROR: Cannot remove data directories due to permission issues."
echo "Please run: sudo rm -rf data/"
echo "Then run this script again."
exit 1
fi
fi
# Create fresh data directories with correct permissions
echo "Preparing data directories..."
mkdir -p data/next-orly
chmod 777 data/next-orly
echo "Building ORLY container..."
$DOCKER_COMPOSE build next-orly
echo "Starting ORLY relay..."
echo ""
# Start only next-orly and benchmark-runner
$DOCKER_COMPOSE up next-orly -d
# Wait for ORLY to be healthy
echo "Waiting for ORLY to be healthy..."
for i in {1..30}; do
if curl -sf http://localhost:8001/ > /dev/null 2>&1; then
echo "ORLY is ready!"
break
fi
sleep 2
if [ $i -eq 30 ]; then
echo "ERROR: ORLY failed to become healthy"
$DOCKER_COMPOSE logs next-orly
exit 1
fi
done
# Run benchmark against ORLY
echo ""
echo "Running benchmark against ORLY..."
echo "Target: http://localhost:8001"
echo ""
# Run the benchmark binary directly against the running ORLY instance
docker run --rm --network benchmark_benchmark-net \
-e BENCHMARK_TARGETS=next-orly:8080 \
-e BENCHMARK_EVENTS=50000 \
-e BENCHMARK_WORKERS=24 \
-e BENCHMARK_DURATION=60s \
-v "$(pwd)/reports:/reports" \
benchmark-benchmark-runner \
/app/benchmark-runner --output-dir=/reports
echo ""
echo "Benchmark complete!"
echo "Stopping ORLY..."
$DOCKER_COMPOSE down
echo ""
echo "Results saved to ./reports/"
echo "Check the latest run_* directory for detailed results."