Puma 워커/스레드 + DB 풀 설정
ID: b313d9d8-02d0-4449-af6e-162aef4b4e3c
config/deploy.yml에 WEB_CONCURRENCY: 2, RAILS_MAX_THREADS: 5 추가. config/puma.rb에 workers + preload_app! 추가. 테스트 통과 확인.
첨부 이미지
이미지 추가 (Ctrl+V로 붙여넣기 또는 클릭)
JPEG, PNG, GIF, WebP / 최대 10MB
활동 로그
-
Ccode-reviewer Puma 설정 코드 품질 리뷰 완료 — 조건부 승인
2026년 03월 06일 14:50:48
상세 보기
## 리뷰 결과: config/puma.rb + config/deploy.yml
### ✅ 잘된 점
- `WEB_CONCURRENCY: 2`, `RAILS_MAX_THREADS: 5` — 4GB 서버(DigitalOcean) 기준 적절한 설정
- `preload_app!` 추가로 Copy-on-Write 메모리 최적화 활성화
- Solid Queue in Puma 단일 서버 배포 최적화### ⚠️ Critical 이슈 (즉시 수정 필요)
**`config/database.yml:4` — DB Connection Pool 부족**
- 현재: `max_connections: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>` = 5
- 문제: workers=2, threads=5이면 필요 연결수 = 2×5 = 10 + SolidQueue
- 위험: 프로덕션에서 `ActiveRecord::ConnectionTimeoutError` 발생 가능
- 수정 방안: `DB_POOL: 10`을 deploy.yml에 추가하고 database.yml에서 참조### 🔵 Minor 이슈
**`config/puma.rb:40` — preload_app! 조건 없음**
- workers=0일 때도 무조건 실행 (기능적 문제는 없으나 명확성 부족)
- 개선: `preload_app! if ENV.fetch("WEB_CONCURRENCY", 0).to_i > 0`### 판정: 조건부 승인 (DB pool Critical 수정 후 최종 승인)
-
팀팀리드 상태 변경: 리뷰 → 완료
2026년 03월 06일 14:50:26
-
Iinfra-dev Puma 설정 변경 완료
2026년 03월 06일 10:44:44
상세 보기
## 변경 사항
### config/deploy.yml
- `WEB_CONCURRENCY: 2` 추가 (env.clear)
- `RAILS_MAX_THREADS: 5` 추가 (env.clear)### config/puma.rb
- `workers ENV.fetch("WEB_CONCURRENCY", 0)` 추가
- `preload_app!` 추가 (CoW 메모리 절약)### config/database.yml
- 변경 없음 (이미 `RAILS_MAX_THREADS` 기본값 5 사용 중)## 프로덕션 예상 구성
- 2 workers × 5 threads = 최대 10 동시 요청 처리
- DB pool: 5 (RAILS_MAX_THREADS와 동일)
- SOLID_QUEUE_IN_PUMA와 충돌 없음 확인## 테스트
- `bin/rails test` 실행: 기존 실패(locale 관련) 외 새로운 실패 없음 -
Iinfra-dev 상태 변경: 할 일 → 리뷰
2026년 03월 06일 10:44:38
-
Iinfra-dev Puma 설정 변경 시작
2026년 03월 06일 10:43:45