diff --git a/lps/run_local_server.sh b/lps/run_local_server.sh index 64f307c..f851156 100755 --- a/lps/run_local_server.sh +++ b/lps/run_local_server.sh @@ -49,7 +49,17 @@ export APP_ENV=local # 5) 실행 case "$choice" in - 1) echo "[run] web_main.py → http://localhost:$PORT/docs" + 1) # 멀티코어: API 는 asyncio(단일 스레드)라 프로세스 수 = 사용 코어 수. 커넥션 풀은 예산에서 자동 역산. + cpu_count="$(sysctl -n hw.ncpu 2>/dev/null || echo '?')" + read -rp "프로세스 수 PROCESS_COUNT [${PROCESS_COUNT:-1}] (CPU ${cpu_count}코어, 부하테스트 벤치는 4): " pc + pc="${pc:-${PROCESS_COUNT:-1}}" + export PROCESS_COUNT="$pc" + if [[ "$pc" != "1" ]]; then + read -rp "DB 커넥션 예산 DB_CONNECTION_BUDGET [${DB_CONNECTION_BUDGET:-96}] (전용PG≈90+, 공유PG 40): " budget + export DB_CONNECTION_BUDGET="${budget:-${DB_CONNECTION_BUDGET:-96}}" + fi + echo "[run] web_main.py → http://localhost:$PORT/docs (프로세스 ${pc}개)" + echo " 기동 로그의 'DB Pool : ... × ${pc}workers ... (budget=...)' 으로 실효 풀 확인" exec "$PY" web_main.py ;; 2) echo "[run] uvicorn --reload → http://localhost:$PORT/docs" exec "$VENV/bin/uvicorn" router.router:app --host 0.0.0.0 --port "$PORT" --reload ;;