Skip to content

[Fix] HikariCP 커넥션 풀 타임아웃 및 슬로우 쿼리 로그 설정 추가#194

Merged
xihxxn merged 1 commit into
developfrom
sihyun
Jun 7, 2026
Merged

[Fix] HikariCP 커넥션 풀 타임아웃 및 슬로우 쿼리 로그 설정 추가#194
xihxxn merged 1 commit into
developfrom
sihyun

Conversation

@xihxxn

@xihxxn xihxxn commented Jun 7, 2026

Copy link
Copy Markdown
Collaborator

배경 — k6 부하 테스트 결과

실 서버(api.piroin.com, 40명 기준)에서 5종 테스트 실행.

테스트 결과 주요 수치
Smoke (1 VU, 2분) ✅ PASS 에러 0%, p(95)=123ms
Load (40 VU, 16분) ✅ PASS 에러 0%, p(95)=96ms
SSE (30+10 VU, 11분) ⚠️ 부분 스레드 고갈 없음, sse_connect_time p(95)=110ms
Stress (120 VU, 35분) ⚠️ FAIL 에러율 0%지만 3s 초과 응답 300건
Soak (20 VU, 2시간) ⚠️ FAIL db_error_count=98, 최대 응답 24분

Stress·Soak 공통 원인: HikariCP 커넥션 풀 고갈.
pool-size=10인 상태에서 고부하·장시간 운영 시 커넥션 점유 시간이 쌓이면서 대기 폭발.


수정 내용

application.yml — HikariCP·슬로우 쿼리·타임아웃 설정 추가

원인: Soak에서 최대 24분 응답 발생 → 커넥션 획득 대기 + 느린 쿼리 원인 파악 불가.

3단계 타임아웃 추가:

레이어 설정 역할
커넥션 획득 hikari.connection-timeout 20s 풀 고갈 시 20s 초과 즉시 예외
쿼리 실행 javax.persistence.query.timeout 30s 느린 쿼리 30s 초과 예외
트랜잭션 전체 spring.transaction.default-timeout 30s 트랜잭션 30s 초과 롤백

슬로우 쿼리 로그 추가:

jpa:
  properties:
    hibernate:
      generate_statistics: true
      session:
        events:
          log:
            LOG_QUERIES_SLOWER_THAN_MS: 1000  # 1s 이상 쿼리 WARN 출력

logging:
  level:
    org.hibernate.SQL_SLOW: WARN
    com.zaxxer.hikari: DEBUG  # 커넥션 획득/반납 추적

목적: 배포 후 슬로우 쿼리 로그를 수집 → 커넥션 오래 점유하는 쿼리 식별 → 인덱스/쿼리 최적화.
pool-size 상향은 근본 원인을 숨기는 것이므로 쿼리 최적화 이후 판단.


현재 상태 및 다음 단계

  • Stress·Soak 실패는 해결되지 않음 — 타임아웃 설정으로 24분 대기는 방어했으나
    근본 원인(어떤 쿼리가 느린지)은 배포 후 슬로우 쿼리 로그로 확인 필요
  • SSE sse_error 임계값 초과는 k6 body 버퍼링 한계 — 서버 문제 아님,
    스레드 고갈 없음(normal_api p(95)=116ms) 확인 완료
  • 다음 액션: 슬로우 쿼리 로그 수집 후 병목 쿼리 최적화 (인덱스, N+1 추가 개선)

@vercel

vercel Bot commented Jun 7, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
piro-in Ready Ready Preview, Comment Jun 7, 2026 5:53pm
piro-in-765d Ready Ready Preview, Comment Jun 7, 2026 5:53pm

@xihxxn xihxxn merged commit ce3434c into develop Jun 7, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant