-
Notifications
You must be signed in to change notification settings - Fork 1
Description
π― ν μ€νΈ μλλ¦¬μ€ μ μ
κ°μ : "λͺ¨μ μλ₯" μλΉμ€ μ¬μ€ν μ, κΈ°μ‘΄ κ°μ μ 2,000λͺ μ΄ λμμ 'μν λͺ©λ‘ μ‘°ν'λ₯Ό μμ²νλ μν©
λͺ©ν: 2,000λͺ μ λμ μ μμλ μμ μ μΈ μλ΅ μλ(μ΅λ 1μ΄ μ΄λ΄) ν보
- ν
μ€νΈ λμ API:
GET /api/v1/exams/all - ν΅μ¬ λ‘μ§: λͺ¨μ μλ₯ μν μ 체 λͺ©λ‘ μ‘°ν
- λΆν ν
μ€νΈ λꡬ:
Locust - ν
μ€νΈ νκ²½:
AWS EC2 (μ¬μ TBD), AWS RDS (DB TBD), Spring/Redis on Docker (JVM κΈ°λ³Έ μ€μ ) - λΆν 쑰건:
VUser 2,000λͺ,Ramp-up 300λͺ /s
π 1μ°¨ μ±λ₯ μΈ‘μ κ²°κ³Ό (κ°μ μ )
G1GC νλ μ΅μ μ΄ μλ κΈ°λ³Έ JVM μ€μ μΌλ‘ λΆν ν μ€νΈλ₯Ό μ§νν κ²°κ³Όμ λλ€. (Before)
[Locust ν μ€νΈ κ²°κ³Ό (2000λͺ :300λͺ .html)]
| μ§ν (Metric) | μΈ‘μ κ° (Value) | λ¨μ (Unit) |
|---|---|---|
| VUser (κ°μ μ¬μ©μ μ) | 2,000 | λͺ |
| RPS (Total) | 101.20 | rps |
| νκ· μλ΅ μκ° (Avg) | 7,741 | ms |
| 95%ile μλ΅ μκ° (95%ile) | 17,000 | ms |
| μ΅λ μλ΅ μκ° (Max) | 19,594 | ms |
| μλ¬μ¨ (Error Rate) | 0 | % |
[κ°μ ν JVM λͺ¨λν°λ§ λμ보λ μ€ν¬λ¦°μ·μ μ¬κΈ°μ 첨λΆν΄ μ£ΌμΈμ]
[μ£Όμ νμΈ μ§ν]: GC Pause Durations κ·Έλνκ° 100ms(0.1μ΄) μ΄νλ‘ μμ νλμλμ§ νμΈν©λλ€.
β¨ μ΅μ’ κ²°λ‘
1, 2μ°¨ μΈ‘μ κ²°κ³Όλ₯Ό λΉκ΅νμ¬ G1GC νλ ν¨κ³Όλ₯Ό μ λμ μΌλ‘ μμ½ν©λλ€.
κ°μ ν¨κ³Ό μμ½:
- GC Pause Time (Max):
200 ms->[TBD] ms - μ΅λ μλ΅ μκ° (Max):
19,594 ms->[TBD] ms( μ½ O % κ°μ ) - 95%ile μλ΅ μκ° (95%ile):
17,000 ms->[TBD] ms( μ½ O % κ°μ ) - RPS (Total):
101.20 rps->[TBD] rps( μ½ O λ°° μ¦κ° ) - CPU Usage (Max):
~90 %->[TBD] %
κ²°λ‘ :
(μ: -XX:MaxGCPauseMillis=100 μ΅μ μ μ©μΌλ‘ G1GCμ "Stop-the-World" μκ°μ 200msμμ 100ms μ΄νλ‘ μμ νμμΌ°μ΅λλ€. κ·Έ κ²°κ³Ό, κ³Όλν GCλ‘ μΈν CPU μ€νμ΄ν¬κ° μ¬λΌμ‘μΌλ©° 95%ile μλ΅ μκ°μ΄ 17μ΄μμ [TBD]μ΄λ‘ ν¬κ² λ¨μΆλμ΄...)
μΆκ° λ Όμ μ¬ν:
- (μ: G1GC νλμΌλ‘ Pause μκ°μ μ€μμΌλ, μ¬μ ν
Allocated/Promotedκ·Έλνκ° λκ² λνλ¨. μ΄λ λΆνμν κ°μ²΄ μμ±μ΄ λ§λ€λ μλ―Έμ΄λ―λ‘, κ·Όλ³Έμ μΈ ν΄κ²°μ μν΄RedisμΊμ λμ μ 2λ¨κ³λ‘ κ³ λ €ν΄μΌ ν¨.)