TEST

[TEST] λΆ€ν•˜ν…ŒμŠ€νŠΈ : k6 Web DashBoard ν•΄μ„ν•˜κΈ°

sian han 2025. 5. 26. 16:38

πŸŽ“ 이 글은 μΈν”„λŸ°μ—μ„œ μ œκ³΅ν•˜λŠ” "λŒ€κ·œλͺ¨ νŠΈλž˜ν”½ 처리λ₯Ό μœ„ν•œ λΆ€ν•˜ ν…ŒμŠ€νŠΈ μž…λ¬Έ/μ‹€μ „" κ°•μ˜λ₯Ό μˆ˜κ°•ν•˜λ©΄μ„œ μ •λ¦¬ν•œ λ‚΄μš©μ„ λ°”νƒ•μœΌλ‘œ μž‘μ„±ν•œ κΈ€μž…λ‹ˆλ‹€.

https://inf.run/jBYVR

 

λŒ€κ·œλͺ¨ νŠΈλž˜ν”½ 처리λ₯Ό μœ„ν•œ λΆ€ν•˜ν…ŒμŠ€νŠΈ μž…λ¬Έ/μ‹€μ „ κ°•μ˜ | JSCODE λ°•μž¬μ„± - μΈν”„λŸ°

JSCODE λ°•μž¬μ„± | , [사진]🀬 에라이, λͺ» ν•΄λ¨Ήκ² λ„€!λΉ„μ „κ³΅μžλ‘œ κ°œλ°œμ„ μ‹œμž‘ν•΄ μ—¬λŸ¬ νšŒμ‚¬μ—μ„œ CTO둜 ν™œλ™ν•˜λ‹€κ°€, ν˜„μž¬λŠ” ꡐ윑자둜 ν™œλ™ν•˜κ³  μžˆλŠ” λ°•μž¬μ„±μ΄λΌκ³  ν•©λ‹ˆλ‹€. 저도 λΉ„μ „κ³΅μžλ‘œ κ°œλ°œμ„ μ‹œμž‘

www.inflearn.com


k6 μ›Ή λŒ€μ‹œλ³΄λ“œκ°€ 무척 λ³΅μž‘ν•΄ 보인닀. 

μˆ˜μΉ˜λ“€μ„ 일일히 μ΅νžˆκΈ°μ—” λ§Žμ€ 것 같이 λŠκ»΄μ§„λ‹€. 

 

κ·ΈλŸ¬λ‚˜ νŒŒλ ˆν† μ˜ 법칙에 따라 3κ°€μ§€λ§Œ ν™•μΈν•˜λ©΄ λœλ‹€. 

  - νŒŒλ ˆν† μ˜ 법칙 : 전체 결과의 λŒ€λΆ€λΆ„μ΄ 일뢀 μ›μΈμ—μ„œ λΉ„λ‘―λœλ‹€λŠ” κ°œλ…μ„ μ„€λͺ…ν•˜λŠ” λ²•μΉ™μœΌλ‘œ, ν”νžˆ 80/20 법칙이라고도 ν•œλ‹€(전체 결과의 80%κ°€ 20%의 μ›μΈμ—μ„œ λΉ„λ‘―λœλ‹€)

 

πŸ“ 수치 ν™•μΈν•˜κΈ°

1. HTTP Request Rate

 

  - http_reqs : 1μ΄ˆλ‹Ή 1300개의 μš”μ²­μ„ μ²˜λ¦¬ν•˜κ³  μžˆλ‹€λŠ” 뜻 (= Throughput 1300)

 

 

2. HTTP Request Duration

 

- Request Duration : ν‰κ· μ μœΌλ‘œ μš”μ²­μ„ λ³΄λƒˆμ„ λ•Œ μ‘λ‹΅ν•˜λŠ” μ‹œκ°„μ΄ 49ms λΌλŠ”λœ» (= Latency)

 

 

3. HTTP Request Failed

 

  - μš”μ²­ μ‹€νŒ¨κ°€ λ°œμƒν–ˆλ‹€λ©΄ μ™œ μ‹€νŒ¨ν–ˆλŠ”μ§€ 디버깅이 ν•„μš”ν•¨

 


 

πŸ“ μˆ˜μΉ˜ ν•΄μ„ν•˜κΈ°

1. HTTP Request Rate

- 가상 μœ μ € μˆ˜κ°€ 4000을 λ„˜μ–΄κ°€κ³  μžˆμ„ λ•Œ ν™•μΈν•œ web dashboard

 

κ·Έλž˜ν”„μ˜ 흐름을 보면 κ°€μƒμœ μ €μˆ˜λŠ”(vus) λŠ” 계속 μ¦κ°€ν•˜κ³  μžˆλŠ” 반면 

Throughput은 2800에 계속 λ¨Έλ¬Όκ³  μžˆλŠ” 것을 확인할 수 μžˆλ‹€. 

 

μ΄ˆλ°˜μ—λŠ” κ°€μƒμœ μ €μˆ˜μ™€ http_reqs κ°€ λΉ„μŠ·ν•˜κ²Œ κ°€κ³  μžˆλŠ”λ°, μ–΄λŠμˆœκ°„λΆ€ν„° 

κ°€μƒμœ μ €μˆ˜λŠ” μ¦κ°€ν•˜λŠ”λ° Throughput 이 μ¦κ°€ν•˜κ³  μžˆμ§€ μ•Šλ‹€. 

더이상 μ¦κ°€ν•˜μ§€ μ•ŠλŠ” ν˜„μž¬μ˜ Throughput 이 ν˜„μž¬ μ‹œμŠ€ν…œμ˜ μ΅œλŒ€ Throughput 인것이닀.

 

= ν˜„μž¬ μ‹œμŠ€ν…œμ€ 1μ΄ˆλ‹Ή μ΅œλŒ€ 2800개의 μš”μ²­μ„ μ²˜λ¦¬ν•  수 μžˆλŠ” μ‹œμŠ€ν…œμ΄λ‹€(= ν˜„μž¬ μ‹œμŠ€ν…œμ˜ μ΅œλŒ€ Throughput 은 2800TPS 이닀)

 

 

2. HTTP Request Duration

μš”μ²­λ‹Ή μ‘λ‹΅ν•˜λŠ” μ‹œκ°„μ΄ λΉ„μ΄μƒμ μœΌλ‘œ 높을 경우 λ¬Έμ œκ°€ μžˆλŠ” 것이 μ•„λ‹Œμ§€ 체크해야 ν•œλ‹€. 

 γ„΄ λΉ„μ΄μƒμ μœΌλ‘œ 높은 μ‹œκ°„μ€ λͺ‡μ΄ˆμΌκΉŒ ? 이건 μ •ν•˜κΈ° λ‚˜λ¦„μ΄λ‹€. 

ex ) 예λ₯Ό λ“€μ–΄ 응닡 μ‹œκ°„μ΄ 1초 μ΄μƒμœΌλ‘œ λ„˜μ–΄κ°ˆ λ•Œ μ‚¬μš©μžλ“€μ˜ μ„œλΉ„μŠ€ μ΄νƒˆλ₯ μ΄ λ§Žμ•„μ§„λ‹€λ©΄, ν•΄λ‹Ή μ„œλΉ„μŠ€μ—μ„œ

μ •μ˜ν•  수 μžˆλŠ” λΉ„μ΄μƒμ μœΌλ‘œ 높은 μ‹œκ°„μ€ 1μ΄ˆκ°€ 될것이닀. 

 

Requst Duration κ·Έλž˜ν”„λ₯Ό 보면 2800개의 μš”μ²­μ„ μ²˜λ¦¬ν•¨μ— μžˆμ–΄μ„œλŠ” λŒ€λΆ€λΆ„μ˜ μš”μ²­μ΄ 1초 이내에 μ‘λ‹΅ν•˜κ³  μžˆλŠ” 것을 확인할 수 μžˆλ‹€. 

λ™μ‹œμ— 가상 μœ μ € 수(Request Rate)κ°€ 증가함에 λ”°λΌμ„œ 응닡값(Request Duration, Latency) 도 점점 μ¦κ°€ν•˜λŠ”λ°, μ™œ 그럴까 ? 

 

μ„œλ²„κ°€ μ²˜λ¦¬ν•  수 μžˆλŠ” 양은 1μ΄ˆμ— 2800개 정도인데, κ°€μƒμœ μ €μˆ˜κ°€ μ¦κ°€ν•œλ‹€λŠ” 것은

μš”μ²­ 값이 1μ΄ˆμ— 4000, 5000 μ΄μƒμœΌλ‘œ 점점 μ˜¬λΌκ°€κ³  μžˆλ‹€λŠ” κ±Έ μ˜λ―Έν•œλ‹€. 

 

근데 μ„œλ²„λŠ” κ³„μ†ν•΄μ„œ 1μ΄ˆμ— 2800개만 μ²˜λ¦¬ν•˜λ‹€λ³΄λ‹ˆ 남은 μš”μ²­λ“€μ€ 점점 λ°€λ €μ„œ λŒ€κΈ°ν•˜κ²Œ λœλ‹€. 

HTTP Request Rate (=Throughput) λŠ” μ •ν•΄μ Έ μžˆλŠ”λ° λŒ€κΈ°ν•˜λŠ” μ‹œκ°„λ•Œλ¬Έμ— Latencyκ°€ λŠ˜μ–΄λ‚˜λŠ” ν˜„μƒμ΄ λ°œμƒν•˜κ²Œ λœλ‹€. 

 

 

 

3. HTTP Request Failed

μš”μ²­μ— μ‹€νŒ¨κ°€ μžˆλ‹€λ©΄ λ°˜λ“œμ‹œ ν™•μΈν•˜κ³  뢄석해야 함 

 

 

 

 

 

 

k6 λΆ€ν•˜ν…ŒμŠ€νŠΈλ₯Ό μ§„ν–‰ν•˜λ©΄μ„œ μ²˜μŒμ— μ…‹νŒ…ν•œ 6000 κ°€μƒμœ μ €μˆ˜μ— 도달할 λ•ŒκΉŒμ§€ 기닀릴 ν•„μš”λŠ” μ—†κ³ 

Throughput 이 μ¦κ°€ν•˜μ§€ μ•ŠλŠ” μˆœκ°„μ΄ λ°œμƒν•˜λŠ” ꡬ간이 있으면 κ·Έ μˆœκ°„λ•ŒκΉŒμ§€λ§Œ λΆ€ν•˜ν…ŒμŠ€νŠΈλ₯Ό μ§„ν–‰ν•˜λ©΄ λœλ‹€

 γ„΄ λ‚΄κ°€ κ΅¬μ„±ν•œ μ„œλ²„κ°€ 1μ΄ˆλ‹Ή λͺ‡κ°œμ˜ μš”μ²­μ„ κ²¬λŽŒλ‚Ό 수 μžˆλŠ”μ§€λ₯Ό νŒλ‹¨ν•  수 μžˆλ‹€.