23 lines
657 B
Bash
23 lines
657 B
Bash
#!/bin/bash
|
|
# Startup script for API with auto-scaling workers
|
|
|
|
# Auto-detect worker count based on CPU cores
|
|
# Formula: (CPU_cores / 2) + 1, min 2, max 8
|
|
CPU_CORES=$(nproc)
|
|
WORKERS=$(( ($CPU_CORES / 2) + 1 ))
|
|
WORKERS=$(( WORKERS < 2 ? 2 : WORKERS ))
|
|
WORKERS=$(( WORKERS > 8 ? 8 : WORKERS ))
|
|
|
|
echo "Starting API with $WORKERS workers (auto-detected from $CPU_CORES CPU cores)"
|
|
|
|
exec gunicorn api.main:app \
|
|
--workers $WORKERS \
|
|
--worker-class uvicorn.workers.UvicornWorker \
|
|
--bind 0.0.0.0:8000 \
|
|
--timeout 120 \
|
|
--max-requests 1000 \
|
|
--max-requests-jitter 100 \
|
|
--access-logfile - \
|
|
--error-logfile - \
|
|
--log-level info
|