Skip to content

선착순 ‐ 스레드 풀 변경에 따른 성능 차이

mjmj edited this page Aug 26, 2024 · 3 revisions
  • 현재 조건
    • lua script와 배치 사용

스레드 풀 200개 일 때

image image image

선착순 마감 전

  • 200TPS, 응답 시간은 vuser 600명 시점부터 요청이 대기하는 시간이 길어짐
  • cpu 사용량 64%, db 서버 14%

스레드 풀 300개 일 때

image image image

선착순 마감 전

  • 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

스레드 풀 500개 일 때

image image image

  • 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

결론

  • 스레드 풀을 늘리는 것은 tps에는 영향을 주지 않지만 많은 요청을 동시에 처리해 응답 시간 자체는 줄일 수 있다.
  • 처리 속도는 비슷하지만 동시에 많은 스레드를 통해 요청을 처리하는 것을 볼 수 있다.
  • 하지만 스레드 수가 증가할 수록 cpu 사용량이 증가하고 적당히 조정하지 않으면 서버가 다운될 수 있다.