From d4cee1caf74e6e3046f312a972d61f4c6c4a5455 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=AF=BC=ED=97=8C?= Date: Fri, 10 Jul 2026 12:02:17 +0900 Subject: [PATCH] =?UTF-8?q?feat(lps):=20API=20=EC=8A=A4=EC=BC=80=EC=9D=BC?= =?UTF-8?q?=20=ED=8C=8C=EB=9D=BC=EB=AF=B8=ED=84=B0=EB=A5=BC=20.env=20?= =?UTF-8?q?=EB=A1=9C=20=EB=85=B8=EC=B6=9C=20=E2=80=94=20PROCESS=5FCOUNT?= =?UTF-8?q?=C2=B7=EC=BB=A4=EB=84=A5=EC=85=98=20=EC=98=88=EC=82=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 주석 상태였던 PROCESS_COUNT/DB_CONNECTION_BUDGET 를 활성화하되 서버별 값은 .env(LPS_API_PROCESS_COUNT, LPS_DB_CONNECTION_BUDGET)로 조정. 기본 1/40 — API 는 단일 프로세스로도 ~1,100 RPS(실측)라 평시 충분, 부하 대비 시에만 상향. 풀 자동 산정이 예산 초과를 방지. Co-Authored-By: Claude Fable 5 --- .env.example | 4 ++++ docker-compose.yml | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.env.example b/.env.example index 9e83bae..487ecfd 100644 --- a/.env.example +++ b/.env.example @@ -6,6 +6,10 @@ LPS_DB_USER=postgres LPS_DB_PASSWORD=postgres +# ── LPS API 스케일 (미설정 시 1 / 40 — 단일 프로세스로도 ~1,100 RPS) ── +LPS_API_PROCESS_COUNT=1 # uvicorn 프로세스 수(=사용 코어 수). 커넥션 풀은 예산에서 자동 역산 +LPS_DB_CONNECTION_BUDGET=40 # lps API 커넥션 총예산. 공유 PG=40, 전용 PG(max_conn≈100)=90 + # ── LPS 워커 시크릿 ── OPENAI_API_KEY= # 비면 AI 유사도 판정 OFF NAVER_KEYS= # "id1:secret1,id2:secret2" — 네이버 쇼핑 오픈API 키(여러 개면 로테이션) diff --git a/docker-compose.yml b/docker-compose.yml index dc66df7..016037d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -130,8 +130,10 @@ services: PYTHONUNBUFFERED: "1" # 멀티코어: PROCESS_COUNT(uvicorn 워커=코어수)를 올리면 커넥션 풀은 자동 산정된다. # (pool+overflow)×2엔진×PROCESS_COUNT ≤ DB_CONNECTION_BUDGET 를 config 가 스스로 보장. - # PROCESS_COUNT: "4" - # DB_CONNECTION_BUDGET: "40" # 전용 PG(max_connections≈100)면 90 근처로 상향 + # 값은 .env 에서 서버별로 조정(compose 수정 불필요). API 병목은 드묾 — 기본 1이면 충분, + # 부하테스트/대량 폴링 대비 시에만 코어 수만큼 상향(예: 4). + PROCESS_COUNT: ${LPS_API_PROCESS_COUNT:-1} + DB_CONNECTION_BUDGET: ${LPS_DB_CONNECTION_BUDGET:-40} # 전용 PG(max_connections≈100)면 90 근처로 상향 ports: - "9600:9600" extra_hosts: