You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.0 KiB
80 lines
2.0 KiB
#!/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=10000 \ |
|
-e BENCHMARK_WORKERS=24 \ |
|
-e BENCHMARK_DURATION=20s \ |
|
-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."
|
|
|