-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Labels
🚀 Performance성능 향상성능 향상
Description
🔍 현재 성능 상태
/api/v1/users/status API에 대한 부하 테스트 결과, 성능 저하가 확인되었습니다. 특히 초당 요청이 90건을 넘어갈 때 데이터베이스 연결 및 쿼리 실행에서 명확한 병목 현상이 발견되었습니다.
📊 성능 측정 결과
| 지표 (Metric) | 결과 (Result) |
|---|---|
| 성공률 (Success Rate) | 100.00% (✓ 72932, ✗ 0) |
| 데이터 수신량 (Data Received) | 77 MB (73 kB/s) |
| 데이터 송신량 (Data Sent) | 14 MB (13 kB/s) |
| 오류율 (Error Rate) | 0.00% (✓ 0, ✗ 36466) |
| 요청 수 (Request Count) | 36466 (34.53/s) |
| 가상 사용자 (VUs) | 1 (최소 0, 최대 300) |
| 지표 (Metric) | 평균 (avg) | 최소 (min) | 중간값 (med) | 최대 (max) | 90% |
|---|---|---|---|---|---|
| 요청 차단 시간 (Request Blocked) | 455.47µs | 1µs | 8µs | 1.26s | 12µs |
| 연결 시간 (Connecting) | 74.17µs | 0s | 0s | 74.26ms | 0s |
| 요청 지속 시간 (Duration) | 1.52s | 126µs | 364.03ms | 20.83s | 4.79s |
| 응답 수신 시간 (Receiving) | 221.53µs | 10µs | 104µs | 40.61ms | 269µs |
| 요청 전송 시간 (Sending) | 38.27µs | 3µs | 27µs | 29.53ms | 44µs |
| TLS 핸드셰이킹 (TLS Handshaking) | 172.61µs | 0s | 0s | 73.78ms | 0s |
| 대기 시간 (Waiting) | 1.52s | 0s | 363.67ms | 20.83s | 4.79s |
| 반복 지속 시간 (Iteration Duration) | 2.26s | 329.76ms | 1.26s | 21.29s | 5.51s |
| 응답 시간 (Response Time) | 1516.59ms | 20ms | 356ms | 20837ms | 4814ms |
매트릭을 포함한 전체 측졍 결과는 노션 문서 에서 확인 가능합니다.
🎯 개선 목표
No response
🛣️ 영향받는 엔드포인트
이 API는 사용자 상태 확인에 핵심적으로 사용되며, 프론트엔드 애플리케이션에서 주기적으로 호출됨. 따라서 성능 개선이 전체 사용자 경험에 직접적인 영향을 줄 수 있음.
💡 개선 방안
- N+1 쿼리 패턴 제거
- 필요 시 단일 쿼리로 합치거나 JOIN 활용
- 적절한 인덱스 추가
- 집계 쿼리 적극 활용
- 필요시 캐싱 도입
📝 비고
개선 이후 기존과 같은 부하 테스트를 통해 개선 전후 성능 비교를 진행할 예정입니다.
Metadata
Metadata
Assignees
Labels
🚀 Performance성능 향상성능 향상