-
Notifications
You must be signed in to change notification settings - Fork 2
선착순 ‐ 스레드 풀 변경에 따른 성능 차이
mjmj edited this page Aug 27, 2024
·
3 revisions
- 현재 조건
- lua script와 배치 사용
- vuser 1000 - cpu 사용량 32%
- rps 272 ~ 실패율 0.2%
Type | Name | # Requests | # Fails | Median (ms) | 95%ile (ms) | 99%ile (ms) | Average (ms) | Min (ms) | Max (ms) | Average size (bytes) | Current RPS | Current Failures/s |
---|---|---|---|---|---|---|---|---|---|---|---|---|
POST | /api/v1/firstcome/quiz | 101299 | 149 | 880 | 1400 | 1600 | 828.56 | 6 | 1824 | 116.33 | 273.5 | 0.2 |
Aggregated | 101299 | 149 | 880 | 1400 | 1600 | 828.56 | 6 | 1824 | 116.33 | 273.5 | 0.2 |
cpu 사용량 24%, db cpu 9%
Type | Name | # Requests | # Fails | Median (ms) | 95%ile (ms) | 99%ile (ms) | Average (ms) | Min (ms) | Max (ms) | Average size (bytes) | Current RPS | Current Failures/s |
---|---|---|---|---|---|---|---|---|---|---|---|---|
POST | /api/v1/firstcome/quiz | 21172 | 23 | 98 | 690 | 800 | 207.9 | 9 | 962 | 116.5 | 287 | 0.3 |
Aggregated | 21172 | 23 | 98 | 690 | 800 | 207.9 | 9 | 962 | 116.5 | 287 | 0.3 |
선착순 마감 전
- 200TPS, 응답 시간은 vuser 600명 시점부터 요청이 대기하는 시간이 길어짐
- cpu 사용량 64%, db 서버 14%
선착순 마감 전
- 200TPS, 응답시간은 아래와 같이 vuser 1000명이 되면서 대기하는 시간이 길어진 것을 확인할 수 있다.
- cpu 사용량 74%, db cpu 19.4%
Type | Name | # Requests | # Fails | Median (ms) | 95%ile (ms) | 99%ile (ms) | Average (ms) | Min (ms) | Max (ms) | Average size (bytes) | Current RPS | Current Failures/s |
---|---|---|---|---|---|---|---|---|---|---|---|---|
POST | /api/v1/firstcome/quiz | 61996 | 82 | 1400 | 2600 | 3800 | 1412.34 | 13 | 7653 | 116.47 | 254.6 | 1 |
Aggregated | 61996 | 82 | 1400 | 2600 | 3800 | 1412.34 | 13 | 7653 | 116.47 | 254.6 | 1 |
- cpu 사용량 76%, vuser 1000명 가까워 질 때 병목이 발생하는 것을 알 수 있다.
Type | Name | # Requests | # Fails | Median (ms) | 95%ile (ms) | 99%ile (ms) | Average (ms) | Min (ms) | Max (ms) | Average size (bytes) | Current RPS | Current Failures/s |
---|---|---|---|---|---|---|---|---|---|---|---|---|
POST | /api/v1/firstcome/quiz | 33159 | 50 | 1200 | 2300 | 3400 | 1103.63 | 10 | 7517 | 116.62 | 245.2 | 0.7 |
Aggregated | 33159 | 50 | 1200 | 2300 | 3400 | 1103.63 | 10 | 7517 | 116.62 | 245.1 | 0.7 |
Type | Name | # Requests | # Fails | Median (ms) | 95%ile (ms) | 99%ile (ms) | Average (ms) | Min (ms) | Max (ms) | Average size (bytes) | Current RPS | Current Failures/s |
---|---|---|---|---|---|---|---|---|---|---|---|---|
POST | /api/v1/firstcome/quiz | 35763 | 56 | 190 | 890 | 1300 | 278.08 | 7 | 3356 | 116.59 | 283.3 | 0.3 |
Aggregated | 35763 | 56 | 190 | 890 | 1300 | 278.08 | 7 | 3356 | 116.59 | 283.3 | 0.3 |
- 히카리풀 50개
-
스레드 풀을 늘리는 것은 tps에는 영향을 주지 않지만 많은 요청을 동시에 처리해 응답 시간 자체는 줄일 수 있다.
-
처리 속도는 비슷하지만 동시에 많은 스레드를 통해 요청을 처리하는 것을 볼 수 있다.
-
하지만 스레드 수가 증가할 수록 cpu 사용량이 증가하고 적당히 조정하지 않으면 서버가 다운될 수 있다.
-
쓰레드 수가 적을 수록 동시 처리 능력이 떨어지는 것을 확인할 수 있다.
-
쓰레드 1000개를 사용하니 응답시간도 안정적이고 tps도 살짝 올라간 것을 볼 수 있다.
- cpu 대기시간이 서비스 시간보다 짧다면 cpu 개수보다 스레드가 적어야 성능이 좋다.
스레드 실행 과정