Files
zeekay a485f34a14 rebrand: complete litestream -> replicate rename
- All source files, configs, docs, CI renamed
- Binary: replicate (not litestream)
- Config: replicate.yml (litestream.yml as fallback)
- Env: REPLICATE_* (LITESTREAM_* as fallback)
- Socket: /var/run/replicate.sock
- Image: ghcr.io/hanzoai/replicate
- Module: github.com/hanzoai/replicate
- Package name: replicate (Go), replicate-vfs (npm/pip/gem)
- VFS: registered as "replicate", pragmas replicate_*
- C exports: ReplicateVFSRegister, GoReplicate*
- Windows service: Replicate
- Systemd unit: replicate.service
- Upstream attribution preserved (README, upgrade test scripts)
2026-04-09 18:03:37 -07:00

82 lines
2.4 KiB
Bash
Executable File

#!/bin/bash
set -e
# Test script for measuring Replicate idle CPU usage with S3 replication
DURATION=${1:-300} # Default 5 minutes
CONFIG_FILE="replicate-test-polling.yml"
MODE_DESC="Polling mode (1s interval)"
echo "========================================="
echo "Replicate CPU Usage Test"
echo "========================================="
echo "Mode: $MODE_DESC"
echo "Config: $CONFIG_FILE"
echo "Duration: ${DURATION}s"
echo "========================================="
# Create test database
echo "Creating test database..."
rm -f /tmp/test.db /tmp/test.db-wal /tmp/test.db-shm
sqlite3 /tmp/test.db "CREATE TABLE test (id INTEGER PRIMARY KEY, data TEXT);"
sqlite3 /tmp/test.db "INSERT INTO test (data) VALUES ('test');"
# Start Replicate in background
echo "Starting Replicate..."
# Get script directory and repo root
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
source "$REPO_ROOT/.envrc"
"$REPO_ROOT/bin/replicate" replicate -config "$SCRIPT_DIR/$CONFIG_FILE" &
REPLICATE_PID=$!
echo "Replicate PID: $REPLICATE_PID"
echo ""
echo "Monitoring CPU usage for ${DURATION}s..."
echo "Press Ctrl+C to stop early"
echo ""
# Monitor CPU usage
echo "Time,CPU%,VSZ,RSS" > /tmp/replicate-cpu-log.csv
for i in $(seq 1 $DURATION); do
if ! kill -0 $REPLICATE_PID 2>/dev/null; then
echo "ERROR: Replicate process died!"
exit 1
fi
# Get CPU and memory stats
CPU=$(ps -p $REPLICATE_PID -o %cpu= | xargs)
VSZ=$(ps -p $REPLICATE_PID -o vsz= | xargs)
RSS=$(ps -p $REPLICATE_PID -o rss= | xargs)
echo "$i,$CPU,$VSZ,$RSS" >> /tmp/replicate-cpu-log.csv
# Display every 10 seconds
if [ $((i % 10)) -eq 0 ]; then
echo "[$i/${DURATION}s] CPU: ${CPU}% VSZ: ${VSZ}KB RSS: ${RSS}KB"
fi
sleep 1
done
# Stop Replicate
echo ""
echo "Stopping Replicate..."
kill $REPLICATE_PID
wait $REPLICATE_PID 2>/dev/null || true
# Calculate average CPU
echo ""
echo "========================================="
echo "Results"
echo "========================================="
AVG_CPU=$(awk -F',' 'NR>1 {sum+=$2; count++} END {if(count>0) print sum/count; else print 0}' /tmp/replicate-cpu-log.csv)
echo "Average CPU: ${AVG_CPU}%"
echo "Detailed log: /tmp/replicate-cpu-log.csv"
echo ""
# Show sample of S3 uploads
echo "S3 Bucket Contents:"
aws s3 ls s3://sprite-replicate-debugging/test-db-${CONFIG_MODE}/ --recursive | head -10