Puma 2워커/5스레드 튜닝

ID: c37f11a4-37d2-4784-8bc1-7f5e288a4c18

긴급 완료

## 목표
1000명 동시 진단 대응을 위해 Puma 동시 처리 능력을 3 → 10으로 향상.

## 변경 파일
- `config/deploy.yml` — `WEB_CONCURRENCY: 2`, `RAILS_MAX_THREADS: 5` 환경변수 추가
- `config/puma.rb` — `workers ENV.fetch("WEB_CONCURRENCY", 0)` + `preload_app!` 추가

## 완료 기준
- 배포 후 Puma 2워커 기동 확인 (`ps aux | grep puma`)
- 메모리 2GB 이내 확인 (`free -m`)
- 헬스체크 정상

## 주의사항
- **절대 3워커 이상 금지** — 4GB 서버에서 PDF 생성(Chromium) 시 OOM 위험
- DB 풀은 RAILS_MAX_THREADS 참조로 자동 반영 (워커당 5개)
- PostgreSQL max_connections(100) 내 여유 확인: 2워커 × 5스레드 × 4DB = 최대 40 커넥션

첨부 이미지

이미지 추가 (Ctrl+V로 붙여넣기 또는 클릭)

JPEG, PNG, GIF, WebP / 최대 10MB

담당자: 팀리드
생성일: 2026년 03월 06일 10:02

활동 로그

  • 팀리드 리뷰 완료 - 승인 (Puma 튜닝)

    2026년 03월 06일 14:50:46

    상세 보기

    ## 리뷰 결과
    - 상태: 승인
    - bin/ci: 기존 이슈만 (변경 파일 관련 신규 이슈 없음)

    ## 코드 품질
    - Puma workers 2 + threads 5 설정 적절 (4GB 서버 기준)
    - preload_app! Copy-on-Write 활용 정상
    - database.yml `max_connections` → `pool` 키 변경 필요 (기존 이슈, 별도 티켓)

    ## 보안
    - PASS (Critical/High 0건)
    - deploy.yml 시크릿 관리 정상, localhost 바인딩 확인

    ## 개선 제안 (별도 티켓)
    - database.yml pool 키 수정

  • 팀리드 상태 변경: 리뷰 → 완료

    2026년 03월 06일 14:50:39

  • 팀리드 팀 작업 완료 - Puma 튜닝 + 결과 캐싱

    2026년 03월 06일 10:50:04

    상세 보기

    ## 수정된 기능
    - Puma 2워커/5스레드 (동시처리 3→10)
    - 진단 결과 Rails.cache.fetch 캐싱 (Big5/9Way/Engagement)
    - find_quality_code 맵핑 캐시

    ## 변경 파일
    - `config/puma.rb` — workers + preload_app!
    - `config/deploy.yml` — WEB_CONCURRENCY: 2, RAILS_MAX_THREADS: 5
    - `app/controllers/diagnoses_controller.rb` — show/shared 캐싱
    - `app/services/diagnosis/big5_result_formatter.rb` — quality_code_map 캐싱

    ## 테스트 결과
    - 839 runs, 2102 assertions, 5 failures, 7 errors (기존과 동일, 신규 회귀 없음)

    ## QA 발견 사항
    - database.yml의 `max_connections` 키가 Rails `pool`이 아님 — 기존 이슈, 별도 티켓 권장
    - 캐시 무효화 로직 미구현 — 재채점 시 stale 가능, 향후 추가 권장

  • 팀리드 상태 변경: 진행 중 → 리뷰

    2026년 03월 06일 10:49:52

  • 팀리드 위임: infra-dev에게 'Puma 워커/스레드 + DB 풀 설정' 작업 배정

    2026년 03월 06일 10:42:38

  • 팀리드 작업 시작 - Puma 튜닝 + 결과 캐싱 병렬 진행

    2026년 03월 06일 10:42:28

    상세 보기

    ## 작업 계획
    - 목표: Puma 2워커/5스레드 + Big5 결과 캐싱
    - 접근: 2명 개발자 병렬 → QA 검증

    ## 팀 구성
    - infra-dev: Puma/DB 설정 변경
    - cache-dev: 결과 캐싱 구현
    - qa-verifier: 테스트/품질 검증

  • 팀리드 티켓 클레임 완료

    2026년 03월 06일 10:42:18

  • 팀리드 상태 변경: 할 일 → 백로그

    2026년 03월 06일 10:02:57