- Published on
- •👁️
JPA N+1 문제 해결에 따른 성능 변화 분석 - 4. 테스트 결과 3
- Authors

- Name
- River
목차 페이지로 이동
데이터 규모에 따른 JPA N+1 문제 진단과 해결 전략 비교
(Fetch Join, Entity Graph, Batch Fetching)
목차
4.3. 테스트 케이스 3 결과
테스트 케이스 설명
대규모 데이터
- Member : 500명
- Animal : 1000마리
- AnimalCase : 1000개 (Member 당 2개)
- Protection : 1,000,000개 (AnimalCase 당 1,000개)
Batch Fetching
- default_batch_fetch_size: 100
API 버전
- Pure : 해결 전략 없는 상태 (N+1 문제 존재)
- Optimized : Fetch Join 적용
- Graph : Entity Graph 적용
- Original : 프로젝트 끝날 때 상태 (일부 Fetch Join 적용됨)
쿼리 분석 결과
(1)1회차
========================================================================================================================
API 버전 비교 분석 보고서
========================================================================================================================
1. 요약 정보
---
분석 대상 API 버전: 4개
- original: /api/v1/protections/my-cases (호출 횟수: 1회)
- pure: /api/v1/protections/pure/my-cases (호출 횟수: 1회)
- optimized: /api/v1/protections/optimized/my-cases (호출 횟수: 1회)
- graph: /api/v1/protections/graph/my-cases (호출 횟수: 1회)
2. 회차별 응답 시간 비교
---
### 응답 시간 (ms)
응답 시간: original (986) / pure (94) / optimized (100) / graph (84)
### 쿼리 수
쿼리 수: original (1012) / pure (10) / optimized (4) / graph (4)
### DB 접근 시간 (ms)
DB 시간: original (53.0) / pure (26.0) / optimized (31.0) / graph (20.0)
### 지연 로딩 횟수
지연 로딩: original (2008) / pure (2005) / optimized (2006) / graph (2006)
### 반복 쿼리 패턴 분석
#### original 버전 반복 쿼리:
1. 횟수: 999회
전체 쿼리: select s1_0.id, s1_0.address, s1_0.business_registration_number, s1_0.created_at, s1_0.latitude, s1_0.longitude, s1_0.modified_at, s1_0.name, s1_0.closed_days, s1_0.weekday_time, s1_0.weekend_time, s1_0.owner, s1_0.save_target_animal, sm1_0.id, sm1_0.address, sm1_0.api_key, sm1_0.birth_date, sm1_0.created_at, sm1_0.email, sm1_0.gender, sm1_0.login_type, sm1_0.marketing_agree, sm1_0.modified_at, sm1_0.nickname, oap1_0.member_id, oap1_0.created_at, oap1_0.google_connected, oap1_0.google_connected_at, oap1_0.google_email, oap1_0.google_modified_at, oap1_0.google_provider_id, oap1_0.kakao_connected, oap1_0.kakao_connected_at, oap1_0.kakao_email, oap1_0.kakao_modified_at, oap1_0.kakao_provider_id, oap1_0.modified_at, oap1_0.naver_connected, oap1_0.naver_connected_at, oap1_0.naver_email, oap1_0.naver_modified_at, oap1_0.naver_provider_id, sm1_0.password, sm1_0.phone_number, sm1_0.profile_image_url, sm1_0.role, sm1_0.status, s1_0.tel, s1_0.vet_person_count from shelters s1_0 left join members sm1_0 on sm1_0.id=s1_0.member_id left join oauth_providers oap1_0 on sm1_0.id=oap1_0.member_id where s1_0.member_id=7
ID 값들: 7, 4, 5, 6, 8, 9, 10, 11, 12, 13 외 989개...
#### pure 버전 반복 쿼리:
반복 패턴 없음
#### optimized 버전 반복 쿼리:
반복 패턴 없음
#### graph 버전 반복 쿼리:
반복 패턴 없음
3. 성능 지표 요약
---
### 버전별 성능 비교 표:
| 성능 지표 | original | pure | optimized | graph |
| ------------------- | -------- | ---- | --------- | ----- |
| 응답 시간 (ms) | 986 | 94 | 100 | 84 |
| 쿼리 수 | 1012 | 10 | 4 | 4 |
| DB 시간 (ms) | 53.0 | 26.0 | 31.0 | 20.0 |
| 지연 로딩 | 2008 | 2005 | 2006 | 2006 |
| 쿼리당 DB 시간 (ms) | 0.05 | 2.60 | 7.75 | 5.00 |
### 성능 지표별 최적 버전:
- 응답 시간: graph (84ms)
- 쿼리 효율성: optimized (4개)
- DB 효율성: original (0.05ms/쿼리)
(2)2회차
========================================================================================================================
API 버전 비교 분석 보고서
========================================================================================================================
1. 요약 정보
------------------------------------------------------------------------------------------------------------------------
분석 대상 API 버전: 4개
- original: /api/v1/protections/my-cases (호출 횟수: 1회)
- pure: /api/v1/protections/pure/my-cases (호출 횟수: 1회)
- optimized: /api/v1/protections/optimized/my-cases (호출 횟수: 1회)
- graph: /api/v1/protections/graph/my-cases (호출 횟수: 1회)
2. 회차별 응답 시간 비교
------------------------------------------------------------------------------------------------------------------------
### 응답 시간 (ms)
응답 시간: original (1072) / pure (64) / optimized (68) / graph (64)
### 쿼리 수
쿼리 수: original (1012) / pure (10) / optimized (4) / graph (4)
### DB 접근 시간 (ms)
DB 시간: original (44.0) / pure (11.0) / optimized (27.0) / graph (20.0)
### 지연 로딩 횟수
지연 로딩: original (2008) / pure (2005) / optimized (2006) / graph (2006)
### 반복 쿼리 패턴 분석
#### original 버전 반복 쿼리:
1. 횟수: 999회
전체 쿼리: select s1_0.id, s1_0.address, s1_0.business_registration_number, s1_0.created_at, s1_0.latitude, s1_0.longitude, s1_0.modified_at, s1_0.name, s1_0.closed_days, s1_0.weekday_time, s1_0.weekend_time, s1_0.owner, s1_0.save_target_animal, sm1_0.id, sm1_0.address, sm1_0.api_key, sm1_0.birth_date, sm1_0.created_at, sm1_0.email, sm1_0.gender, sm1_0.login_type, sm1_0.marketing_agree, sm1_0.modified_at, sm1_0.nickname, oap1_0.member_id, oap1_0.created_at, oap1_0.google_connected, oap1_0.google_connected_at, oap1_0.google_email, oap1_0.google_modified_at, oap1_0.google_provider_id, oap1_0.kakao_connected, oap1_0.kakao_connected_at, oap1_0.kakao_email, oap1_0.kakao_modified_at, oap1_0.kakao_provider_id, oap1_0.modified_at, oap1_0.naver_connected, oap1_0.naver_connected_at, oap1_0.naver_email, oap1_0.naver_modified_at, oap1_0.naver_provider_id, sm1_0.password, sm1_0.phone_number, sm1_0.profile_image_url, sm1_0.role, sm1_0.status, s1_0.tel, s1_0.vet_person_count from shelters s1_0 left join members sm1_0 on sm1_0.id=s1_0.member_id left join oauth_providers oap1_0 on sm1_0.id=oap1_0.member_id where s1_0.member_id=7
ID 값들: 7, 4, 5, 6, 8, 9, 10, 11, 12, 13 외 989개...
#### pure 버전 반복 쿼리:
반복 패턴 없음
#### optimized 버전 반복 쿼리:
반복 패턴 없음
#### graph 버전 반복 쿼리:
반복 패턴 없음
3. 성능 지표 요약
------------------------------------------------------------------------------------------------------------------------
### 버전별 성능 비교 표:
| 성능 지표 | original | pure | optimized | graph |
| --- | --- | --- | --- | --- |
| 응답 시간 (ms) | 1072 | 64 | 68 | 64 |
| 쿼리 수 | 1012 | 10 | 4 | 4 |
| DB 시간 (ms) | 44.0 | 11.0 | 27.0 | 20.0 |
| 지연 로딩 | 2008 | 2005 | 2006 | 2006 |
| 쿼리당 DB 시간 (ms) | 0.04 | 1.10 | 6.75 | 5.00 |
### 성능 지표별 최적 버전:
- 응답 시간: pure (64ms)
- 쿼리 효율성: optimized (4개)
- DB 효율성: original (0.04ms/쿼리)
K6 부하 테스트 결과
(1)K6 시나리오 설명
(주의 !) P6Spy나 다른 로그 시스템을 끄지 않고 K6 테스트를 로컬에서 하는 경우 메모리 부족이 생길 수 있다.
- 대량의 쿼리가 발생 ⇒ P6Spy의 로깅 처리 ⇒ CPU, 메모리 사용 증가 및 로그 파일 생성으로 디스크 I/O 증가
- 로깅 작업 자체도 많은 임시 객체를 생성한다. ⇒ JVM Heap에 영향을 준다.
- 디스크 I/O 증가는 CPU, 메모리 등 전반적으로 영향을 많이 준다.
- 소규모 데이터에선 영향이 크지 않다.
- K6 시나리오
- 사용자 로그인
- 시작 : 5명의 동시 사용자로 10초간 진행
- 단계적 증가 : 20명 → 50명 → 100명으로 각 30초씩 증가
- 최대 부하 유지 : 100명의 사용자로 30초간 유지
- 마무리 : 5명으로 감소하여 10초간 진행
(2)
Original 버전
1회차
요약 ========================================================= 총 요청 수: 1156 테스트 기간:
146.3939811초 TPS (초당 트랜잭션): 7.90
응답 시간 (ms): - 평균: 5624.10 - 최소: 73.89 - 중앙값: 5714.22 - 최대: 16054.07 - p90: 9946.28 - p95: 10083.46 - p99: 10349.75 - p99.9: 14508.16
# 실패율: 0.00%
{
"apiVersion": "original",
"summary": {
"totalRequests": 1156,
"testDuration": 146.3939811,
"tps": 7.896499509842212
},
"responseTime": {
"avg": 5624.100092214534,
"min": 73.8854,
"med": 5714.2207,
"max": 16054.0668,
"p90": 9946.2812,
"p95": 10083.462599999999,
"p99": 10349.751355000004
},
"failRate": 0,
"vus_max": 100,
"http_req_waiting": 5617.959016089962,
"http_req_connecting": 0.10636470588235292,
"http_req_sending": 0.012886245674740485,
"http_req_receiving": 6.12818987889273
}
running (2m26.4s), 000/100 VUs, 1155 complete and 0 interrupted iterations
default ✓ [======================================] 000/100 VUs 2m20s
ERRO[0146] thresholds on metrics 'http_req_duration' have been crossed
2회차
=========================================================
original 버전 성능 테스트 결과 요약
=========================================================
총 요청 수: 1143
테스트 기간: 147.1542738초
TPS (초당 트랜잭션): 7.77
응답 시간 (ms):
- 평균: 5759.05
- 최소: 73.08
- 중앙값: 5791.08
- 최대: 17820.30
- p90: 10259.13
- p95: 10361.81
- p99: 10511.15
- p99.9: 13409.08
실패율: 0.00%
=========================================================
{
"apiVersion": "original",
"summary": {
"totalRequests": 1143,
"testDuration": 147.1542738,
"tps": 7.767358503997456
},
"responseTime": {
"avg": 5759.052985301845,
"min": 73.0757,
"med": 5791.0758,
"max": 17820.3039,
"p90": 10259.127180000001,
"p95": 10361.80576,
"p99": 10511.151151999999
},
"failRate": 0,
"vus_max": 100,
"http_req_waiting": 5752.931030971129,
"http_req_connecting": 0.11283727034120733,
"http_req_sending": 0.009685826771653545,
"http_req_receiving": 6.112268503937019
}
running (2m27.2s), 000/100 VUs, 1142 complete and 0 interrupted iterations
default ✓ [======================================] 000/100 VUs 2m20s
ERRO[0147] thresholds on metrics 'http_req_duration' have been crossed
3회차
요약 ========================================================= 총 요청 수: 1142 테스트 기간:
146.6239706초 TPS (초당 트랜잭션): 7.79
응답 시간 (ms): - 평균: 5744.32 - 최소: 76.40 - 중앙값: 5900.83 - 최대: 14449.41 - p90: 10055.98 - p95: 10162.95 - p99: 10331.48 - p99.9: 14392.85
# 실패율: 0.00%
{
"apiVersion": "original",
"summary": {
"totalRequests": 1142,
"testDuration": 146.6239706,
"tps": 7.788630981188283
},
"responseTime": {
"avg": 5744.322276970234,
"min": 76.3976,
"med": 5900.831700000001,
"max": 14449.4128,
"p90": 10055.97891,
"p95": 10162.953615,
"p99": 10331.482920999999
},
"failRate": 0,
"vus_max": 100,
"http_req_waiting": 5738.090273992995,
"http_req_connecting": 0.11231558669001755,
"http_req_sending": 0.010659457092819614,
"http_req_receiving": 6.221343520140092
}
running (2m26.6s), 000/100 VUs, 1141 complete and 0 interrupted iterations
default ✓ [======================================] 000/100 VUs 2m20s
ERRO[0146] thresholds on metrics 'http_req_duration' have been crossed
(3)Pure 버전
1회차
=========================================================
pure 버전 성능 테스트 결과 요약
=========================================================
총 요청 수: 6483
테스트 기간: 141.5217709초
TPS (초당 트랜잭션): 45.81
응답 시간 (ms):
- 평균: 99.70
- 최소: 46.05
- 중앙값: 95.10
- 최대: 335.41
- p90: 149.16
- p95: 171.62
- p99: 225.98
- p99.9: 303.59
실패율: 0.00%
=========================================================
{
"apiVersion": "pure",
"summary": {
"totalRequests": 6483,
"testDuration": 141.5217709,
"tps": 45.80920630636342
},
"responseTime": {
"avg": 99.69555003856246,
"min": 46.0503,
"med": 95.1008,
"max": 335.4068,
"p90": 149.15706,
"p95": 171.62016999999997,
"p99": 225.97748000000016
},
"failRate": 0,
"vus_max": 100,
"http_req_waiting": 94.00096842511145,
"http_req_connecting": 0.01792754897424033,
"http_req_sending": 0.012752845904673757,
"http_req_receiving": 5.681828767545882
}
running (2m21.5s), 000/100 VUs, 6482 complete and 0 interrupted iterations
default ✓ [======================================] 000/100 VUs 2m20s
2회차
========================================================= 총 요청 수: 6309 테스트 기간:
141.31593909999998초 TPS (초당 트랜잭션): 44.64
응답 시간 (ms): - 평균: 119.75 - 최소: 45.24 - 중앙값: 96.26 - 최대: 809.52 - p90: 199.37 - p95: 278.66 - p99: 514.42 - p99.9: 715.87
# 실패율: 0.00%
{
"apiVersion": "pure",
"summary": {
"totalRequests": 6309,
"testDuration": 141.31593909999998,
"tps": 44.64464546731375
},
"responseTime": {
"avg": 119.74778311935346,
"min": 45.2396,
"med": 96.258,
"max": 809.5182,
"p90": 199.36601999999996,
"p95": 278.66349999999994,
"p99": 514.4164720000001
},
"failRate": 0,
"vus_max": 100,
"http_req_waiting": 110.80498963385648,
"http_req_connecting": 0.018401505785385953,
"http_req_sending": 0.1497593437945792,
"http_req_receiving": 8.793034141702316
}
running (2m21.3s), 000/100 VUs, 6308 complete and 0 interrupted iterations
default ✓ [======================================] 000/100 VUs 2m20s
3회차
=========================================================
pure 버전 성능 테스트 결과 요약
=========================================================
총 요청 수: 6490
테스트 기간: 141.2998101초
TPS (초당 트랜잭션): 45.93
응답 시간 (ms):
- 평균: 99.79
- 최소: 44.93
- 중앙값: 93.46
- 최대: 394.94
- p90: 150.61
- p95: 174.61
- p99: 257.01
- p99.9: 340.33
실패율: 0.00%
=========================================================
{
"apiVersion": "pure",
"summary": {
"totalRequests": 6490,
"testDuration": 141.2998101,
"tps": 45.9307057483441
},
"responseTime": {
"avg": 99.79471771956848,
"min": 44.9283,
"med": 93.4575,
"max": 394.9402,
"p90": 150.60574000000003,
"p95": 174.610335,
"p99": 257.0123079999996
},
"failRate": 0,
"vus_max": 100,
"http_req_waiting": 94.13563431432952,
"http_req_connecting": 0.016404591679506933,
"http_req_sending": 0.015708166409861325,
"http_req_receiving": 5.643375238828974
}
running (2m21.3s), 000/100 VUs, 6489 complete and 0 interrupted iterations
default ✓ [======================================] 000/100 VUs 2m20s
(4)
Optimized 버전
1회차
요약 ========================================================= 총 요청 수: 5691 테스트 기간:
141.30876120000002초 TPS (초당 트랜잭션): 40.27
응답 시간 (ms): - 평균: 229.71 - 최소: 60.37 - 중앙값: 175.50 - 최대: 1203.92 - p90: 434.94 - p95: 507.30 - p99: 685.99 - p99.9: 986.96
# 실패율: 0.00%
{
"apiVersion": "optimized",
"summary": {
"totalRequests": 5691,
"testDuration": 141.30876120000002,
"tps": 40.273511363851654
},
"responseTime": {
"avg": 229.71026396063974,
"min": 60.3708,
"med": 175.4988,
"max": 1203.9199,
"p90": 434.9413,
"p95": 507.29965000000004,
"p99": 685.9917800000012
},
"failRate": 0,
"vus_max": 100,
"http_req_waiting": 215.2332225443681,
"http_req_connecting": 0.04163278861360043,
"http_req_sending": 0.4583382533825342,
"http_req_receiving": 14.01870316288874
}
running (2m21.3s), 000/100 VUs, 5690 complete and 0 interrupted iterations
default ✓ [======================================] 000/100 VUs 2m20s
2회차
=========================================================
optimized 버전 성능 테스트 결과 요약
=========================================================
총 요청 수: 5634
테스트 기간: 141.1725684초
TPS (초당 트랜잭션): 39.91
응답 시간 (ms):
- 평균: 227.89
- 최소: 59.17
- 중앙값: 172.29
- 최대: 1164.50
- p90: 444.12
- p95: 525.17
- p99: 699.31
- p99.9: 993.67
실패율: 0.00%
=========================================================
{
"apiVersion": "optimized",
"summary": {
"totalRequests": 5634,
"testDuration": 141.1725684,
"tps": 39.908603093743814
},
"responseTime": {
"avg": 227.88780376286758,
"min": 59.1739,
"med": 172.2862,
"max": 1164.5023,
"p90": 444.12026,
"p95": 525.1700999999994,
"p99": 699.307276
},
"failRate": 0,
"vus_max": 100,
"http_req_waiting": 210.92106700390465,
"http_req_connecting": 0.05288123890663826,
"http_req_sending": 0.7893240504082358,
"http_req_receiving": 16.17741270855524
}
running (2m21.2s), 000/100 VUs, 5633 complete and 0 interrupted iterations
default ✓ [======================================] 000/100 VUs 2m20s
3회차
요약 ========================================================= 총 요청 수: 6069 테스트 기간:
141.0763875초 TPS (초당 트랜잭션): 43.02
응답 시간 (ms): - 평균: 178.47 - 최소: 59.77 - 중앙값: 152.66 - 최대: 600.04 - p90: 315.46 - p95: 352.31 - p99: 435.71 - p99.9: 495.66
# 실패율: 0.00%
{
"apiVersion": "optimized",
"summary": {
"totalRequests": 6069,
"testDuration": 141.0763875,
"tps": 43.01924728544668
},
"responseTime": {
"avg": 178.46632484758652,
"min": 59.7717,
"med": 152.661,
"max": 600.0363,
"p90": 315.46083999999996,
"p95": 352.30586,
"p99": 435.7102199999999
},
"failRate": 0,
"vus_max": 100,
"http_req_waiting": 172.71618233646387,
"http_req_connecting": 0.01856918767507003,
"http_req_sending": 0.02067128027681661,
"http_req_receiving": 5.7294712308452835
}
running (2m21.1s), 000/100 VUs, 6068 complete and 0 interrupted iterations
default ✓ [======================================] 000/100 VUs 2m20s
(5)Graph 버전
1회차
=========================================================
graph 버전 성능 테스트 결과 요약
=========================================================
총 요청 수: 6225
테스트 기간: 141.46490400000002초
TPS (초당 트랜잭션): 44.00
응답 시간 (ms):
- 평균: 147.04
- 최소: 51.67
- 중앙값: 125.89
- 최대: 653.14
- p90: 251.26
- p95: 282.69
- p99: 362.91
- p99.9: 437.68
실패율: 0.00%
=========================================================
{
"apiVersion": "graph",
"summary": {
"totalRequests": 6225,
"testDuration": 141.46490400000002,
"tps": 44.003847060186736
},
"responseTime": {
"avg": 147.03605182329335,
"min": 51.6661,
"med": 125.8893,
"max": 653.1363,
"p90": 251.26348000000007,
"p95": 282.69115999999985,
"p99": 362.909504
},
"failRate": 0,
"vus_max": 100,
"http_req_waiting": 140.83556514056244,
"http_req_connecting": 0.01926419277108434,
"http_req_sending": 0.032319196787148605,
"http_req_receiving": 6.16816748594377
}
running (2m21.5s), 000/100 VUs, 6224 complete and 0 interrupted iterations
default ✓ [======================================] 000/100 VUs 2m20s
2회차
=========================================================
graph 버전 성능 테스트 결과 요약
=========================================================
총 요청 수: 6235
테스트 기간: 141.4793021초
TPS (초당 트랜잭션): 44.07
응답 시간 (ms): - 평균: 150.38 - 최소: 51.73 - 중앙값: 129.90 - 최대: 668.83 - p90: 257.11 - p95: 304.19 - p99: 413.78 - p99.9: 543.37
# 실패율: 0.00%
{
"apiVersion": "graph",
"summary": {
"totalRequests": 6235,
"testDuration": 141.4793021,
"tps": 44.0700505830386
},
"responseTime": {
"avg": 150.38309448275805,
"min": 51.7288,
"med": 129.9017,
"max": 668.8251,
"p90": 257.11278,
"p95": 304.19451999999995,
"p99": 413.77555199999995
},
"failRate": 0,
"vus_max": 100,
"http_req_waiting": 144.00777674418552,
"http_req_connecting": 0.019201475541299123,
"http_req_sending": 0.05509717722534081,
"http_req_receiving": 6.320220561347213
}
running (2m21.5s), 000/100 VUs, 6234 complete and 0 interrupted iterations
default ✓ [======================================] 000/100 VUs 2m20s
3회차
=========================================================
graph 버전 성능 테스트 결과 요약
=========================================================
총 요청 수: 6229
테스트 기간: 141.39998459999998초
TPS (초당 트랜잭션): 44.05
응답 시간 (ms):
- 평균: 143.59
- 최소: 51.57
- 중앙값: 119.99
- 최대: 498.85
- p90: 254.17
- p95: 288.40
- p99: 368.25
- p99.9: 437.10
실패율: 0.00%
=========================================================
{
"apiVersion": "graph",
"summary": {
"totalRequests": 6229,
"testDuration": 141.39998459999998,
"tps": 44.05233860258851
},
"responseTime": {
"avg": 143.5939359929361,
"min": 51.5711,
"med": 119.9932,
"max": 498.8491,
"p90": 254.16594,
"p95": 288.40076,
"p99": 368.24985600000025
},
"failRate": 0,
"vus_max": 100,
"http_req_waiting": 137.34178068710884,
"http_req_connecting": 0.022506052335848462,
"http_req_sending": 0.034450874939797725,
"http_req_receiving": 6.217704430887788
}
running (2m21.4s), 000/100 VUs, 6228 complete and 0 interrupted iterations
default ✓ [======================================] 000/100 VUs 2m20s
GC 로그 분석 결과
(1)Original 버전
1회차
============================================
GC-API 상관관계 분석 보고서
============================================
분석 시간: 2025-05-02 07:16:34
로그 파일: results\temp_original_case3_log.txt
## 1. GC 통계
GC 발생 횟수: 123
총 GC 소요 시간: 812.20ms
평균 GC 시간: 6.60ms
최대 GC 일시 정지 시간: 16.34ms
총 회수 메모리량: 65076MB
평균 메모리 회수량: 529.07MB
테스트 기간: 137.20초
초당 GC 발생 수: 0.8965
분당 GC 발생 수: 53.79
GC 유형별 발생 횟수: - Young (Normal) (G1 Evacuation Pause): 123
## 2. API 통계 (GC 추출)
API 요청 수: 1155
총 API 실행 시간: 4216971.00ms
평균 API 응답 시간: 3651.06ms
최소 API 응답 시간: 626.00ms
최대 API 응답 시간: 9789.00ms
테스트 기간: 145.01초
TPS(초당 트랜잭션): 7.96
P90 응답 시간: 7428.40ms
P95 응답 시간: 8409.20ms
P99 응답 시간: 9339.50ms
API 상태 코드 분포: - 200: 1155
API 버전 분포: - original: 1155
## 3. K6 성능 지표
API 버전: original
총 요청 수: 1156
테스트 기간: 146.39초
TPS: 7.90
평균 응답 시간: 5624.10ms
최소 응답 시간: 73.89ms
중간값 응답 시간: 5714.22ms
최대 응답 시간: 16054.07ms
P90 응답 시간: 9946.28ms
P95 응답 시간: 10083.46ms
P99 응답 시간: 10349.75ms
실패율: 0.00%
최대 가상 사용자 수: 100
HTTP 요청 상세 시간: - 대기 시간(waiting): 5617.96ms - 연결 시간(connecting): 0.11ms - 송신 시간(sending): 0.01ms - 수신 시간(receiving): 6.13ms
## 4. GC-API 상관관계 분석
API 호출 중 발생한 GC 수: 123
GC 발생 API 요청 수: 1087
GC 미발생 API 요청 수: 68
전체 API 대비 GC 발생 API 비율: 94.11%
응답 시간 비교: - GC 발생 API 평균 응답 시간: 3830.75ms - GC 미발생 API 평균 응답 시간: 778.57ms - 응답 시간 차이: 3052.18ms - GC 영향 비율: 392.02%
백분위 응답 시간 비교: - GC 발생 API P95 응답 시간: 8436.50ms - GC 미발생 API P95 응답 시간: 962.55ms
최소/최대 응답 시간 비교: - GC 발생 API 최소 응답 시간: 665.00ms - GC 미발생 API 최소 응답 시간: 626.00ms - GC 발생 API 최대 응답 시간: 9789.00ms - GC 미발생 API 최대 응답 시간: 1036.00ms
## 5. 효율성 지표
요청당 GC 발생 비율: 0.106494
요청당 메모리 회수량: 56.34MB
총 실행 시간 대비 GC 소요 시간 비율: 0.02%
TPS당 GC 발생 수: 15.44
K6 결과 비교:
로그 파싱 API 요청 / K6 총 요청 비율: 99.91%
로그 파싱 평균 응답 시간 / K6 평균 응답 시간 비율: 64.92%
2회차
============================================
GC-API 상관관계 분석 보고서
============================================
분석 시간: 2025-05-02 07:26:14
로그 파일: results\temp_original_case3_log.txt
## 1. GC 통계
GC 발생 횟수: 122
총 GC 소요 시간: 822.60ms
평균 GC 시간: 6.74ms
최대 GC 일시 정지 시간: 13.99ms
총 회수 메모리량: 64583MB
평균 메모리 회수량: 529.37MB
테스트 기간: 141.19초
초당 GC 발생 수: 0.8641
분당 GC 발생 수: 51.84
GC 유형별 발생 횟수:
- Young (Normal) (G1 Evacuation Pause): 122
## 2. API 통계 (GC 추출)
API 요청 수: 1142
총 API 실행 시간: 4176882.00ms
평균 API 응답 시간: 3657.51ms
최소 API 응답 시간: 645.00ms
최대 API 응답 시간: 10308.00ms
테스트 기간: 145.72초
TPS(초당 트랜잭션): 7.84
P90 응답 시간: 7644.70ms
P95 응답 시간: 8831.85ms
P99 응답 시간: 9682.22ms
API 상태 코드 분포:
- 200: 1142
API 버전 분포:
- original: 1142
## 3. K6 성능 지표
API 버전: original
총 요청 수: 1143
테스트 기간: 147.15초
TPS: 7.77
평균 응답 시간: 5759.05ms
최소 응답 시간: 73.08ms
중간값 응답 시간: 5791.08ms
최대 응답 시간: 17820.30ms
P90 응답 시간: 10259.13ms
P95 응답 시간: 10361.81ms
P99 응답 시간: 10511.15ms
실패율: 0.00%
최대 가상 사용자 수: 100
HTTP 요청 상세 시간:
- 대기 시간(waiting): 5752.93ms
- 연결 시간(connecting): 0.11ms
- 송신 시간(sending): 0.01ms
- 수신 시간(receiving): 6.11ms
## 4. GC-API 상관관계 분석
API 호출 중 발생한 GC 수: 122
GC 발생 API 요청 수: 1082
GC 미발생 API 요청 수: 60
전체 API 대비 GC 발생 API 비율: 94.75%
응답 시간 비교:
- GC 발생 API 평균 응답 시간: 3816.98ms
- GC 미발생 API 평균 응답 시간: 781.80ms
- 응답 시간 차이: 3035.18ms
- GC 영향 비율: 388.23%
백분위 응답 시간 비교:
- GC 발생 API P95 응답 시간: 8867.50ms
- GC 미발생 API P95 응답 시간: 989.05ms
최소/최대 응답 시간 비교:
- GC 발생 API 최소 응답 시간: 676.00ms
- GC 미발생 API 최소 응답 시간: 645.00ms
- GC 발생 API 최대 응답 시간: 10308.00ms
- GC 미발생 API 최대 응답 시간: 999.00ms
## 5. 효율성 지표
요청당 GC 발생 비율: 0.106830
요청당 메모리 회수량: 56.55MB
총 실행 시간 대비 GC 소요 시간 비율: 0.02%
TPS당 GC 발생 수: 15.57
K6 결과 비교:
로그 파싱 API 요청 / K6 총 요청 비율: 99.91%
로그 파싱 평균 응답 시간 / K6 평균 응답 시간 비율: 63.51%
3회차
============================================
분석 시간: 2025-05-02 07:52:32
로그 파일: results\temp_original_case3_log.txt
## 1. GC 통계
GC 발생 횟수: 122
총 GC 소요 시간: 842.69ms
평균 GC 시간: 6.91ms
최대 GC 일시 정지 시간: 25.13ms
총 회수 메모리량: 64629MB
평균 메모리 회수량: 529.75MB
테스트 기간: 140.07초
초당 GC 발생 수: 0.8710
분당 GC 발생 수: 52.26
GC 유형별 발생 횟수: - Young (Normal) (G1 Evacuation Pause): 122
## 2. API 통계 (GC 추출)
API 요청 수: 1139
총 API 실행 시간: 4402367.00ms
평균 API 응답 시간: 3865.12ms
최소 API 응답 시간: 625.00ms
최대 API 응답 시간: 10099.00ms
테스트 기간: 145.38초
TPS(초당 트랜잭션): 7.83
P90 응답 시간: 7555.20ms
P95 응답 시간: 8307.60ms
P99 응답 시간: 9100.10ms
API 상태 코드 분포: - 200: 1139
API 버전 분포: - original: 1139
## 3. K6 성능 지표
API 버전: original
총 요청 수: 1142
테스트 기간: 146.62초
TPS: 7.79
평균 응답 시간: 5744.32ms
최소 응답 시간: 76.40ms
중간값 응답 시간: 5900.83ms
최대 응답 시간: 14449.41ms
P90 응답 시간: 10055.98ms
P95 응답 시간: 10162.95ms
P99 응답 시간: 10331.48ms
실패율: 0.00%
최대 가상 사용자 수: 100
HTTP 요청 상세 시간: - 대기 시간(waiting): 5738.09ms - 연결 시간(connecting): 0.11ms - 송신 시간(sending): 0.01ms - 수신 시간(receiving): 6.22ms
## 4. GC-API 상관관계 분석
API 호출 중 발생한 GC 수: 122
GC 발생 API 요청 수: 1064
GC 미발생 API 요청 수: 75
전체 API 대비 GC 발생 API 비율: 93.42%
응답 시간 비교: - GC 발생 API 평균 응답 시간: 4080.73ms - GC 미발생 API 평균 응답 시간: 806.20ms - 응답 시간 차이: 3274.53ms - GC 영향 비율: 406.17%
백분위 응답 시간 비교: - GC 발생 API P95 응답 시간: 8357.65ms - GC 미발생 API P95 응답 시간: 996.80ms
최소/최대 응답 시간 비교: - GC 발생 API 최소 응답 시간: 626.00ms - GC 미발생 API 최소 응답 시간: 625.00ms - GC 발생 API 최대 응답 시간: 10099.00ms - GC 미발생 API 최대 응답 시간: 1137.00ms
## 5. 효율성 지표
요청당 GC 발생 비율: 0.107112
요청당 메모리 회수량: 56.74MB
총 실행 시간 대비 GC 소요 시간 비율: 0.02%
TPS당 GC 발생 수: 15.57
K6 결과 비교:
로그 파싱 API 요청 / K6 총 요청 비율: 99.74%
로그 파싱 평균 응답 시간 / K6 평균 응답 시간 비율: 67.29%
(2)Pure 버전
1회차
============================================
GC-API 상관관계 분석 보고서
============================================
분석 시간: 2025-05-02 06:20:09
로그 파일: results\temp_pure_case3_log.txt
## 1. GC 통계
GC 발생 횟수: 169
총 GC 소요 시간: 989.62ms
평균 GC 시간: 5.86ms
최대 GC 일시 정지 시간: 14.38ms
총 회수 메모리량: 89721MB
평균 메모리 회수량: 530.89MB
테스트 기간: 127.64초
초당 GC 발생 수: 1.3241
분당 GC 발생 수: 79.44
GC 유형별 발생 횟수:
- Young (Normal) (G1 Evacuation Pause): 169
## 2. API 통계 (GC 추출)
API 요청 수: 6477
총 API 실행 시간: 588131.00ms
평균 API 응답 시간: 90.80ms
최소 API 응답 시간: 43.00ms
최대 API 응답 시간: 284.00ms
테스트 기간: 140.01초
TPS(초당 트랜잭션): 46.26
P90 응답 시간: 128.00ms
P95 응답 시간: 146.00ms
P99 응답 시간: 191.00ms
API 상태 코드 분포:
- 200: 6477
API 버전 분포:
- pure: 6477
## 3. K6 성능 지표
API 버전: pure
총 요청 수: 6483
테스트 기간: 141.52초
TPS: 45.81
평균 응답 시간: 99.70ms
최소 응답 시간: 46.05ms
중간값 응답 시간: 95.10ms
최대 응답 시간: 335.41ms
P90 응답 시간: 149.16ms
P95 응답 시간: 171.62ms
P99 응답 시간: 225.98ms
실패율: 0.00%
최대 가상 사용자 수: 100
HTTP 요청 상세 시간:
- 대기 시간(waiting): 94.00ms
- 연결 시간(connecting): 0.02ms
- 송신 시간(sending): 0.01ms
- 수신 시간(receiving): 5.68ms
## 4. GC-API 상관관계 분석
API 호출 중 발생한 GC 수: 168
GC 발생 API 요청 수: 1252
GC 미발생 API 요청 수: 5225
전체 API 대비 GC 발생 API 비율: 19.33%
응답 시간 비교:
- GC 발생 API 평균 응답 시간: 110.54ms
- GC 미발생 API 평균 응답 시간: 86.07ms
- 응답 시간 차이: 24.46ms
- GC 영향 비율: 28.42%
백분위 응답 시간 비교:
- GC 발생 API P95 응답 시간: 175.00ms
- GC 미발생 API P95 응답 시간: 136.00ms
최소/최대 응답 시간 비교:
- GC 발생 API 최소 응답 시간: 48.00ms
- GC 미발생 API 최소 응답 시간: 43.00ms
- GC 발생 API 최대 응답 시간: 284.00ms
- GC 미발생 API 최대 응답 시간: 261.00ms
## 5. 효율성 지표
요청당 GC 발생 비율: 0.026092
요청당 메모리 회수량: 13.85MB
총 실행 시간 대비 GC 소요 시간 비율: 0.17%
TPS당 GC 발생 수: 3.65
K6 결과 비교:
로그 파싱 API 요청 / K6 총 요청 비율: 99.91%
로그 파싱 평균 응답 시간 / K6 평균 응답 시간 비율: 91.08%
2회차
============================================
분석 시간: 2025-05-02 06:31:40
로그 파일: results\temp_pure_case3_log.txt
## 1. GC 통계
GC 발생 횟수: 166
총 GC 소요 시간: 989.00ms
평균 GC 시간: 5.96ms
최대 GC 일시 정지 시간: 17.05ms
총 회수 메모리량: 87979MB
평균 메모리 회수량: 529.99MB
테스트 기간: 174.80초
초당 GC 발생 수: 0.9497
분당 GC 발생 수: 56.98
GC 유형별 발생 횟수: - Young (Normal) (G1 Evacuation Pause): 165 - Young (Concurrent Start) (CodeCache GC Threshold): 1
## 2. API 통계 (GC 추출)
API 요청 수: 6304
총 API 실행 시간: 652899.00ms
평균 API 응답 시간: 103.57ms
최소 API 응답 시간: 42.00ms
최대 API 응답 시간: 668.00ms
테스트 기간: 139.83초
TPS(초당 트랜잭션): 45.08
P90 응답 시간: 160.00ms
P95 응답 시간: 209.00ms
P99 응답 시간: 365.97ms
API 상태 코드 분포: - 200: 6304
API 버전 분포: - pure: 6304
## 3. K6 성능 지표
API 버전: pure
총 요청 수: 6309
테스트 기간: 141.32초
TPS: 44.64
평균 응답 시간: 119.75ms
최소 응답 시간: 45.24ms
중간값 응답 시간: 96.26ms
최대 응답 시간: 809.52ms
P90 응답 시간: 199.37ms
P95 응답 시간: 278.66ms
P99 응답 시간: 514.42ms
실패율: 0.00%
최대 가상 사용자 수: 100
HTTP 요청 상세 시간: - 대기 시간(waiting): 110.80ms - 연결 시간(connecting): 0.02ms - 송신 시간(sending): 0.15ms - 수신 시간(receiving): 8.79ms
## 4. GC-API 상관관계 분석
API 호출 중 발생한 GC 수: 164
GC 발생 API 요청 수: 1289
GC 미발생 API 요청 수: 5015
전체 API 대비 GC 발생 API 비율: 20.45%
응답 시간 비교: - GC 발생 API 평균 응답 시간: 143.57ms - GC 미발생 API 평균 응답 시간: 93.29ms - 응답 시간 차이: 50.29ms - GC 영향 비율: 53.91%
백분위 응답 시간 비교: - GC 발생 API P95 응답 시간: 336.00ms - GC 미발생 API P95 응답 시간: 175.00ms
최소/최대 응답 시간 비교: - GC 발생 API 최소 응답 시간: 47.00ms - GC 미발생 API 최소 응답 시간: 42.00ms - GC 발생 API 최대 응답 시간: 668.00ms - GC 미발생 API 최대 응답 시간: 466.00ms
## 5. 효율성 지표
요청당 GC 발생 비율: 0.026332
요청당 메모리 회수량: 13.96MB
총 실행 시간 대비 GC 소요 시간 비율: 0.15%
TPS당 GC 발생 수: 3.68
K6 결과 비교:
로그 파싱 API 요청 / K6 총 요청 비율: 99.92%
로그 파싱 평균 응답 시간 / K6 평균 응답 시간 비율: 86.49%
3회차
============================================
GC-API 상관관계 분석 보고서
============================================
분석 시간: 2025-05-02 07:02:39
로그 파일: results\temp_pure_case3_log.txt
## 1. GC 통계
GC 발생 횟수: 166
총 GC 소요 시간: 931.81ms
평균 GC 시간: 5.61ms
최대 GC 일시 정지 시간: 22.77ms
총 회수 메모리량: 90165MB
평균 메모리 회수량: 543.16MB
테스트 기간: 131.13초
초당 GC 발생 수: 1.2659
분당 GC 발생 수: 75.95
GC 유형별 발생 횟수:
- Young (Normal) (G1 Evacuation Pause): 166
## 2. API 통계 (GC 추출)
API 요청 수: 6482
총 API 실행 시간: 586297.00ms
평균 API 응답 시간: 90.45ms
최소 API 응답 시간: 43.00ms
최대 API 응답 시간: 351.00ms
테스트 기간: 140.04초
TPS(초당 트랜잭션): 46.29
P90 응답 시간: 127.00ms
P95 응답 시간: 148.00ms
P99 응답 시간: 206.00ms
API 상태 코드 분포:
- 200: 6482
API 버전 분포:
- pure: 6482
## 3. K6 성능 지표
API 버전: pure
총 요청 수: 6490
테스트 기간: 141.30초
TPS: 45.93
평균 응답 시간: 99.79ms
최소 응답 시간: 44.93ms
중간값 응답 시간: 93.46ms
최대 응답 시간: 394.94ms
P90 응답 시간: 150.61ms
P95 응답 시간: 174.61ms
P99 응답 시간: 257.01ms
실패율: 0.00%
최대 가상 사용자 수: 100
HTTP 요청 상세 시간:
- 대기 시간(waiting): 94.14ms
- 연결 시간(connecting): 0.02ms
- 송신 시간(sending): 0.02ms
- 수신 시간(receiving): 5.64ms
## 4. GC-API 상관관계 분석
API 호출 중 발생한 GC 수: 165
GC 발생 API 요청 수: 1188
GC 미발생 API 요청 수: 5294
전체 API 대비 GC 발생 API 비율: 18.33%
응답 시간 비교:
- GC 발생 API 평균 응답 시간: 110.75ms
- GC 미발생 API 평균 응답 시간: 85.89ms
- 응답 시간 차이: 24.86ms
- GC 영향 비율: 28.94%
백분위 응답 시간 비교:
- GC 발생 API P95 응답 시간: 183.00ms
- GC 미발생 API P95 응답 시간: 137.00ms
최소/최대 응답 시간 비교:
- GC 발생 API 최소 응답 시간: 48.00ms
- GC 미발생 API 최소 응답 시간: 43.00ms
- GC 발생 API 최대 응답 시간: 351.00ms
- GC 미발생 API 최대 응답 시간: 274.00ms
## 5. 효율성 지표
요청당 GC 발생 비율: 0.025609
요청당 메모리 회수량: 13.91MB
총 실행 시간 대비 GC 소요 시간 비율: 0.16%
TPS당 GC 발생 수: 3.59
K6 결과 비교:
로그 파싱 API 요청 / K6 총 요청 비율: 99.88%
로그 파싱 평균 응답 시간 / K6 평균 응답 시간 비율: 90.64%
(3)
Optimized 버전
1회차
============================================
분석 시간: 2025-05-02 02:55:37
로그 파일: results\temp_optimized_case3_log.txt
## 1. GC 통계
GC 발생 횟수: 196
총 GC 소요 시간: 1225.43ms
평균 GC 시간: 6.25ms
최대 GC 일시 정지 시간: 16.13ms
총 회수 메모리량: 93560MB
평균 메모리 회수량: 477.35MB
테스트 기간: 130.17초
초당 GC 발생 수: 1.5057
분당 GC 발생 수: 90.34
GC 유형별 발생 횟수: - Young (Normal) (G1 Evacuation Pause): 195 - Young (Normal) (GCLocker Initiated GC): 1
## 2. API 통계 (GC 추출)
API 요청 수: 5688
총 API 실행 시간: 1001805.00ms
평균 API 응답 시간: 176.13ms
최소 API 응답 시간: 56.00ms
최대 API 응답 시간: 703.00ms
테스트 기간: 140.07초
TPS(초당 트랜잭션): 40.61
P90 응답 시간: 318.00ms
P95 응답 시간: 370.00ms
P99 응답 시간: 468.26ms
API 상태 코드 분포: - 200: 5688
API 버전 분포: - optimized: 5688
## 3. K6 성능 지표
API 버전: optimized
총 요청 수: 5691
테스트 기간: 141.31초
TPS: 40.27
평균 응답 시간: 229.71ms
최소 응답 시간: 60.37ms
중간값 응답 시간: 175.50ms
최대 응답 시간: 1203.92ms
P90 응답 시간: 434.94ms
P95 응답 시간: 507.30ms
P99 응답 시간: 685.99ms
실패율: 0.00%
최대 가상 사용자 수: 100
HTTP 요청 상세 시간: - 대기 시간(waiting): 215.23ms - 연결 시간(connecting): 0.04ms - 송신 시간(sending): 0.46ms - 수신 시간(receiving): 14.02ms
## 4. GC-API 상관관계 분석
API 호출 중 발생한 GC 수: 195
GC 발생 API 요청 수: 2030
GC 미발생 API 요청 수: 3658
전체 API 대비 GC 발생 API 비율: 35.69%
응답 시간 비교: - GC 발생 API 평균 응답 시간: 238.55ms - GC 미발생 API 평균 응답 시간: 141.49ms - 응답 시간 차이: 97.06ms - GC 영향 비율: 68.60%
백분위 응답 시간 비교: - GC 발생 API P95 응답 시간: 433.00ms - GC 미발생 API P95 응답 시간: 299.00ms
최소/최대 응답 시간 비교: - GC 발생 API 최소 응답 시간: 61.00ms - GC 미발생 API 최소 응답 시간: 56.00ms - GC 발생 API 최대 응답 시간: 703.00ms - GC 미발생 API 최대 응답 시간: 479.00ms
## 5. 효율성 지표
요청당 GC 발생 비율: 0.034459
요청당 메모리 회수량: 16.45MB
총 실행 시간 대비 GC 소요 시간 비율: 0.12%
TPS당 GC 발생 수: 4.83
K6 결과 비교:
로그 파싱 API 요청 / K6 총 요청 비율: 99.95%
로그 파싱 평균 응답 시간 / K6 평균 응답 시간 비율: 76.67%
2회차
============================================
GC-API 상관관계 분석 보고서
============================================
분석 시간: 2025-05-02 03:08:09
로그 파일: results\temp_optimized_case3_log.txt
## 1. GC 통계
GC 발생 횟수: 177
총 GC 소요 시간: 1121.53ms
평균 GC 시간: 6.34ms
최대 GC 일시 정지 시간: 13.98ms
총 회수 메모리량: 92707MB
평균 메모리 회수량: 523.77MB
테스트 기간: 130.60초
초당 GC 발생 수: 1.3553
분당 GC 발생 수: 81.32
GC 유형별 발생 횟수:
- Young (Normal) (G1 Evacuation Pause): 177
## 2. API 통계 (GC 추출)
API 요청 수: 5629
총 API 실행 시간: 981882.00ms
평균 API 응답 시간: 174.43ms
최소 API 응답 시간: 56.00ms
최대 API 응답 시간: 804.00ms
테스트 기간: 139.87초
TPS(초당 트랜잭션): 40.24
P90 응답 시간: 313.20ms
P95 응답 시간: 365.00ms
P99 응답 시간: 485.72ms
API 상태 코드 분포:
- 200: 5629
API 버전 분포:
- optimized: 5629
## 3. K6 성능 지표
API 버전: optimized
총 요청 수: 5634
테스트 기간: 141.17초
TPS: 39.91
평균 응답 시간: 227.89ms
최소 응답 시간: 59.17ms
중간값 응답 시간: 172.29ms
최대 응답 시간: 1164.50ms
P90 응답 시간: 444.12ms
P95 응답 시간: 525.17ms
P99 응답 시간: 699.31ms
실패율: 0.00%
최대 가상 사용자 수: 100
HTTP 요청 상세 시간:
- 대기 시간(waiting): 210.92ms
- 연결 시간(connecting): 0.05ms
- 송신 시간(sending): 0.79ms
- 수신 시간(receiving): 16.18ms
## 4. GC-API 상관관계 분석
API 호출 중 발생한 GC 수: 177
GC 발생 API 요청 수: 1921
GC 미발생 API 요청 수: 3708
전체 API 대비 GC 발생 API 비율: 34.13%
응답 시간 비교:
- GC 발생 API 평균 응답 시간: 237.50ms
- GC 미발생 API 평균 응답 시간: 141.76ms
- 응답 시간 차이: 95.75ms
- GC 영향 비율: 67.54%
백분위 응답 시간 비교:
- GC 발생 API P95 응답 시간: 451.00ms
- GC 미발생 API P95 응답 시간: 303.00ms
최소/최대 응답 시간 비교:
- GC 발생 API 최소 응답 시간: 61.00ms
- GC 미발생 API 최소 응답 시간: 56.00ms
- GC 발생 API 최대 응답 시간: 804.00ms
- GC 미발생 API 최대 응답 시간: 507.00ms
## 5. 효율성 지표
요청당 GC 발생 비율: 0.031444
요청당 메모리 회수량: 16.47MB
총 실행 시간 대비 GC 소요 시간 비율: 0.11%
TPS당 GC 발생 수: 4.40
K6 결과 비교:
로그 파싱 API 요청 / K6 총 요청 비율: 99.91%
로그 파싱 평균 응답 시간 / K6 평균 응답 시간 비율: 76.54%
3회차
============================================
분석 시간: 2025-05-02 04:42:20
로그 파일: results\temp_optimized_case3_log.txt
## 1. GC 통계
GC 발생 횟수: 191
총 GC 소요 시간: 1080.08ms
평균 GC 시간: 5.65ms
최대 GC 일시 정지 시간: 8.04ms
총 회수 메모리량: 100062MB
평균 메모리 회수량: 523.88MB
테스트 기간: 142.19초
초당 GC 발생 수: 1.3433
분당 GC 발생 수: 80.60
GC 유형별 발생 횟수: - Young (Normal) (G1 Evacuation Pause): 191
## 2. API 통계 (GC 추출)
API 요청 수: 6063
총 API 실행 시간: 901617.00ms
평균 API 응답 시간: 148.71ms
최소 API 응답 시간: 57.00ms
최대 API 응답 시간: 483.00ms
테스트 기간: 139.72초
TPS(초당 트랜잭션): 43.39
P90 응답 시간: 247.80ms
P95 응답 시간: 275.00ms
P99 응답 시간: 342.00ms
API 상태 코드 분포: - 200: 6063
API 버전 분포: - optimized: 6063
## 3. K6 성능 지표
API 버전: optimized
총 요청 수: 6069
테스트 기간: 141.08초
TPS: 43.02
평균 응답 시간: 178.47ms
최소 응답 시간: 59.77ms
중간값 응답 시간: 152.66ms
최대 응답 시간: 600.04ms
P90 응답 시간: 315.46ms
P95 응답 시간: 352.31ms
P99 응답 시간: 435.71ms
실패율: 0.00%
최대 가상 사용자 수: 100
HTTP 요청 상세 시간: - 대기 시간(waiting): 172.72ms - 연결 시간(connecting): 0.02ms - 송신 시간(sending): 0.02ms - 수신 시간(receiving): 5.73ms
## 4. GC-API 상관관계 분석
API 호출 중 발생한 GC 수: 189
GC 발생 API 요청 수: 1964
GC 미발생 API 요청 수: 4099
전체 API 대비 GC 발생 API 비율: 32.39%
응답 시간 비교: - GC 발생 API 평균 응답 시간: 189.76ms - GC 미발생 API 평균 응답 시간: 129.04ms - 응답 시간 차이: 60.72ms - GC 영향 비율: 47.06%
백분위 응답 시간 비교: - GC 발생 API P95 응답 시간: 305.00ms - GC 미발생 API P95 응답 시간: 249.00ms
최소/최대 응답 시간 비교: - GC 발생 API 최소 응답 시간: 64.00ms - GC 미발생 API 최소 응답 시간: 57.00ms - GC 발생 API 최대 응답 시간: 483.00ms - GC 미발생 API 최대 응답 시간: 427.00ms
## 5. 효율성 지표
요청당 GC 발생 비율: 0.031503
요청당 메모리 회수량: 16.50MB
총 실행 시간 대비 GC 소요 시간 비율: 0.12%
TPS당 GC 발생 수: 4.40
K6 결과 비교:
로그 파싱 API 요청 / K6 총 요청 비율: 99.90%
로그 파싱 평균 응답 시간 / K6 평균 응답 시간 비율: 83.33%
(4)Graph 버전
1회차
============================================
GC-API 상관관계 분석 보고서
============================================
분석 시간: 2025-05-02 04:56:53
로그 파일: results\temp_graph_case3_log.txt
## 1. GC 통계
GC 발생 횟수: 196
총 GC 소요 시간: 1180.59ms
평균 GC 시간: 6.02ms
최대 GC 일시 정지 시간: 15.93ms
총 회수 메모리량: 102484MB
평균 메모리 회수량: 522.88MB
테스트 기간: 132.86초
초당 GC 발생 수: 1.4752
분당 GC 발생 수: 88.51
GC 유형별 발생 횟수:
- Young (Normal) (G1 Evacuation Pause): 195
- Young (Normal) (GCLocker Initiated GC): 1
## 2. API 통계 (GC 추출)
API 요청 수: 6220
총 API 실행 시간: 783143.00ms
평균 API 응답 시간: 125.91ms
최소 API 응답 시간: 48.00ms
최대 API 응답 시간: 415.00ms
테스트 기간: 139.96초
TPS(초당 트랜잭션): 44.44
P90 응답 시간: 203.00ms
P95 응답 시간: 229.05ms
P99 응답 시간: 288.00ms
API 상태 코드 분포:
- 200: 6220
API 버전 분포:
- graph: 6220
## 3. K6 성능 지표
API 버전: graph
총 요청 수: 6225
테스트 기간: 141.46초
TPS: 44.00
평균 응답 시간: 147.04ms
최소 응답 시간: 51.67ms
중간값 응답 시간: 125.89ms
최대 응답 시간: 653.14ms
P90 응답 시간: 251.26ms
P95 응답 시간: 282.69ms
P99 응답 시간: 362.91ms
실패율: 0.00%
최대 가상 사용자 수: 100
HTTP 요청 상세 시간:
- 대기 시간(waiting): 140.84ms
- 연결 시간(connecting): 0.02ms
- 송신 시간(sending): 0.03ms
- 수신 시간(receiving): 6.17ms
## 4. GC-API 상관관계 분석
API 호출 중 발생한 GC 수: 195
GC 발생 API 요청 수: 1802
GC 미발생 API 요청 수: 4418
전체 API 대비 GC 발생 API 비율: 28.97%
응답 시간 비교:
- GC 발생 API 평균 응답 시간: 159.63ms
- GC 미발생 API 평균 응답 시간: 112.15ms
- 응답 시간 차이: 47.48ms
- GC 영향 비율: 42.34%
백분위 응답 시간 비교:
- GC 발생 API P95 응답 시간: 262.95ms
- GC 미발생 API P95 응답 시간: 208.00ms
최소/최대 응답 시간 비교:
- GC 발생 API 최소 응답 시간: 55.00ms
- GC 미발생 API 최소 응답 시간: 48.00ms
- GC 발생 API 최대 응답 시간: 415.00ms
- GC 미발생 API 최대 응답 시간: 362.00ms
## 5. 효율성 지표
요청당 GC 발생 비율: 0.031511
요청당 메모리 회수량: 16.48MB
총 실행 시간 대비 GC 소요 시간 비율: 0.15%
TPS당 GC 발생 수: 4.41
K6 결과 비교:
로그 파싱 API 요청 / K6 총 요청 비율: 99.92%
로그 파싱 평균 응답 시간 / K6 평균 응답 시간 비율: 85.63%
2회차
============================================
분석 시간: 2025-05-02 05:52:37
로그 파일: results\temp_graph_case3_log.txt
## 1. GC 통계
GC 발생 횟수: 197
총 GC 소요 시간: 1180.12ms
평균 GC 시간: 5.99ms
최대 GC 일시 정지 시간: 9.86ms
총 회수 메모리량: 102913MB
평균 메모리 회수량: 522.40MB
테스트 기간: 131.34초
초당 GC 발생 수: 1.4999
분당 GC 발생 수: 90.00
GC 유형별 발생 횟수: - Young (Normal) (G1 Evacuation Pause): 197
## 2. API 통계 (GC 추출)
API 요청 수: 6233
총 API 실행 시간: 800638.00ms
평균 API 응답 시간: 128.45ms
최소 API 응답 시간: 49.00ms
최대 API 응답 시간: 579.00ms
테스트 기간: 139.94초
TPS(초당 트랜잭션): 44.54
P90 응답 시간: 209.00ms
P95 응답 시간: 243.00ms
P99 응답 시간: 321.68ms
API 상태 코드 분포: - 200: 6233
API 버전 분포: - graph: 6233
## 3. K6 성능 지표
API 버전: graph
총 요청 수: 6235
테스트 기간: 141.48초
TPS: 44.07
평균 응답 시간: 150.38ms
최소 응답 시간: 51.73ms
중간값 응답 시간: 129.90ms
최대 응답 시간: 668.83ms
P90 응답 시간: 257.11ms
P95 응답 시간: 304.19ms
P99 응답 시간: 413.78ms
실패율: 0.00%
최대 가상 사용자 수: 100
HTTP 요청 상세 시간: - 대기 시간(waiting): 144.01ms - 연결 시간(connecting): 0.02ms - 송신 시간(sending): 0.06ms - 수신 시간(receiving): 6.32ms
## 4. GC-API 상관관계 분석
API 호출 중 발생한 GC 수: 197
GC 발생 API 요청 수: 1926
GC 미발생 API 요청 수: 4307
전체 API 대비 GC 발생 API 비율: 30.90%
응답 시간 비교: - GC 발생 API 평균 응답 시간: 166.30ms - GC 미발생 API 평균 응답 시간: 111.53ms - 응답 시간 차이: 54.77ms - GC 영향 비율: 49.11%
백분위 응답 시간 비교: - GC 발생 API P95 응답 시간: 282.00ms - GC 미발생 API P95 응답 시간: 207.00ms
최소/최대 응답 시간 비교: - GC 발생 API 최소 응답 시간: 55.00ms - GC 미발생 API 최소 응답 시간: 49.00ms - GC 발생 API 최대 응답 시간: 579.00ms - GC 미발생 API 최대 응답 시간: 404.00ms
## 5. 효율성 지표
요청당 GC 발생 비율: 0.031606
요청당 메모리 회수량: 16.51MB
총 실행 시간 대비 GC 소요 시간 비율: 0.15%
TPS당 GC 발생 수: 4.42
K6 결과 비교:
로그 파싱 API 요청 / K6 총 요청 비율: 99.97%
로그 파싱 평균 응답 시간 / K6 평균 응답 시간 비율: 85.42%
3회차
============================================
GC-API 상관관계 분석 보고서
============================================
분석 시간: 2025-05-02 06:12:00
로그 파일: results\temp_graph_case3_log.txt
## 1. GC 통계
GC 발생 횟수: 196
총 GC 소요 시간: 1194.09ms
평균 GC 시간: 6.09ms
최대 GC 일시 정지 시간: 15.06ms
총 회수 메모리량: 102531MB
평균 메모리 회수량: 523.12MB
테스트 기간: 128.70초
초당 GC 발생 수: 1.5230
분당 GC 발생 수: 91.38
GC 유형별 발생 횟수:
- Young (Normal) (G1 Evacuation Pause): 195
- Young (Normal) (GCLocker Initiated GC): 1
## 2. API 통계 (GC 추출)
API 요청 수: 6222
총 API 실행 시간: 769689.00ms
평균 API 응답 시간: 123.70ms
최소 API 응답 시간: 48.00ms
최대 API 응답 시간: 408.00ms
테스트 기간: 139.99초
TPS(초당 트랜잭션): 44.45
P90 응답 시간: 207.00ms
P95 응답 시간: 234.00ms
P99 응답 시간: 297.79ms
API 상태 코드 분포:
- 200: 6222
API 버전 분포:
- graph: 6222
## 3. K6 성능 지표
API 버전: graph
총 요청 수: 6229
테스트 기간: 141.40초
TPS: 44.05
평균 응답 시간: 143.59ms
최소 응답 시간: 51.57ms
중간값 응답 시간: 119.99ms
최대 응답 시간: 498.85ms
P90 응답 시간: 254.17ms
P95 응답 시간: 288.40ms
P99 응답 시간: 368.25ms
실패율: 0.00%
최대 가상 사용자 수: 100
HTTP 요청 상세 시간:
- 대기 시간(waiting): 137.34ms
- 연결 시간(connecting): 0.02ms
- 송신 시간(sending): 0.03ms
- 수신 시간(receiving): 6.22ms
## 4. GC-API 상관관계 분석
API 호출 중 발생한 GC 수: 196
GC 발생 API 요청 수: 1815
GC 미발생 API 요청 수: 4407
전체 API 대비 GC 발생 API 비율: 29.17%
응답 시간 비교:
- GC 발생 API 평균 응답 시간: 158.58ms
- GC 미발생 API 평균 응답 시간: 109.34ms
- 응답 시간 차이: 49.23ms
- GC 영향 비율: 45.03%
백분위 응답 시간 비교:
- GC 발생 API P95 응답 시간: 269.00ms
- GC 미발생 API P95 응답 시간: 210.00ms
최소/최대 응답 시간 비교:
- GC 발생 API 최소 응답 시간: 54.00ms
- GC 미발생 API 최소 응답 시간: 48.00ms
- GC 발생 API 최대 응답 시간: 408.00ms
- GC 미발생 API 최대 응답 시간: 355.00ms
## 5. 효율성 지표
요청당 GC 발생 비율: 0.031501
요청당 메모리 회수량: 16.48MB
총 실행 시간 대비 GC 소요 시간 비율: 0.16%
TPS당 GC 발생 수: 4.41
K6 결과 비교:
로그 파싱 API 요청 / K6 총 요청 비율: 99.89%
로그 파싱 평균 응답 시간 / K6 평균 응답 시간 비율: 86.15%
5. 결과 종합
(1)Grafana 결과
전체 버전

그림 4-9: Case 3 전체 API (평균, P95, P99)
좌측부터 optimized, graph, pure, original 버전
1000ms 확대 사진
그림 4-10: Case 3 일부 API (평균, P95, P99)- 좌측부터 optimized, graph, pure
- K6 thresholds 설정 : p(95)<600, p(99)<800
P95 응답 속도
그림 4-11: Case 3 일부 API (P95)- 좌측부터 optimized, graph, pure
- K6 thresholds 설정 : p(95)<600
P99 응답 속도
그림 4-12: Case 3 일부 API (P99)- 좌측부터 optimized, graph, pure
- K6 thresholds 설정 : p(99)<800
(2)
케이스 평균 데이터
GC 성능 지표
항목 | original | pure | optimized | graph |
|---|---|---|---|---|
| GC 발생 횟수 | 122.33 | 167.00 | 188.00 | 196.33 |
| 평균 GC 시간(ms) | 6.75 | 5.81 | 6.08 | 6.03 |
| 최대 GC 시간(ms) | 18.49 | 18.07 | 12.72 | 13.62 |
| 총 회수 메모리량(MB) | 64762.67 | 89288.33 | 95443.00 | 102642.67 |
| 평균 메모리 회수량(MB) | 529.40 | 534.68 | 508.33 | 522.80 |
API 성능 지표
항목 | original | pure | optimized | graph |
|---|---|---|---|---|
| API 요청 수 | 1145.33 | 6421.00 | 5793.33 | 6225.00 |
| 평균 API 응답 시간(ms) | 3724.56 | 94.94 | 166.42 | 126.02 |
| 최소 API 응답 시간(ms) | 632.00 | 42.67 | 56.33 | 48.33 |
| 최대 API 응답 시간(ms) | 10065.33 | 434.33 | 663.33 | 467.33 |
| API TPS | 7.88 | 45.88 | 41.41 | 44.48 |
| API P90 응답 시간(ms) | 7542.77 | 138.33 | 293.00 | 206.33 |
| API P95 응답 시간(ms) | 8516.22 | 167.67 | 336.67 | 235.35 |
| API P99 응답 시간(ms) | 9373.94 | 254.32 | 431.99 | 302.49 |
GC-API 상관관계 지표
항목 | original | pure | optimized | graph |
|---|---|---|---|---|
| API 호출 중 발생한 GC 수 | 122.33 | 165.67 | 187.00 | 196.00 |
| GC 발생 API 요청 수 | 1077.67 | 1243.00 | 1971.67 | 1847.67 |
| GC 미발생 API 요청 수 | 67.67 | 5178.00 | 3821.67 | 4377.33 |
| GC 발생 API 평균 응답 시간(ms) | 3909.49 | 121.62 | 221.94 | 161.50 |
| GC 미발생 API 평균 응답 시간(ms) | 788.86 | 88.42 | 137.43 | 111.01 |
| GC 발생 API 비율(%) | 94.09 | 19.37 | 34.07 | 29.68 |
| GC 영향 비율(%) | 395.47 | 37.09 | 61.07 | 45.49 |
K6 성능 지표
항목 | original | pure | optimized | graph |
|---|---|---|---|---|
| K6 TPS | 7.82 | 45.46 | 41.07 | 44.04 |
| 가상 사용자 최대 | 100.00 | 100.00 | 100.00 | 100.00 |
| K6 평균 응답 시간(ms) | 5709.16 | 106.41 | 212.02 | 147.00 |
| K6 최소 응답 시간(ms) | 74.46 | 45.41 | 59.77 | 51.66 |
| K6 중간값 응답 시간(ms) | 5802.04 | 94.94 | 166.82 | 125.26 |
| K6 최대 응답 시간(ms) | 16107.93 | 513.29 | 989.49 | 606.94 |
| K6 P90 응답 시간(ms) | 10087.13 | 166.38 | 398.17 | 254.18 |
| K6 P95 응답 시간(ms) | 10202.74 | 208.30 | 461.59 | 291.76 |
| K6 P99 응답 시간(ms) | 10397.46 | 332.47 | 607.00 | 381.65 |
| 실패율(%) | 0.00 | 0.00 | 0.00 | 0.00 |
효율성 지표
항목 | original | pure | optimized | graph |
|---|---|---|---|---|
| 요청당 GC 발생 비율 | 0.11 | 0.03 | 0.03 | 0.03 |
| 요청당 메모리 회수량(MB) | 56.54 | 13.91 | 16.47 | 16.49 |
| 총 실행 시간 대비 GC 소요 시간 비율(%) | 0.02 | 0.16 | 0.12 | 0.15 |
다음 페이지로 이동 (5. 테스트 결과 비교)