Redis ‐ 부하 테스트 - dnwls16071/Backend_Study_TIL GitHub Wiki

📚 내가 구성한 백엔드 서버가 1초당 몇 개의 요청(TPS)을 견뎌낼 수 있는지 체크하는 방법

  • 부하 테스트에서 서비스가 1초당 처리할 수 있는 작업량을 보고 Throughput이라고 한다.
  • 단위는 TPS(Transaction Per Seconds, 1초당 처리한 트랜잭션의 수)를 많이 활용한다.
  • 만약 내가 만든 서비스가 1초에 최대 100개의 API 요청을 처리할 수 있다면 이 서비스의 Throughput은 100 TPS라고 말할 수 있다.

📚 부하 테스트를 위한 환경 세팅(k6)

[k6](Mac 기준)

  • 성능 비교를 위해 k6라는 부하 테스트 툴을 사용할 것이다. 부하 테스트 툴에는 k6 이외에도 ngrinder, jmeter, ab, locust 등이 있다.
$ brew install k6 # k6를 설치한다.
  • 호스트 컴퓨터 임의의 디렉터리에 k6 실행 스크립트를 작성한다.
import http from 'k6/http';
import { sleep } from 'k6';

export default function() {
  http.get('http://54.180.183.224/boards');
}
  • 터미널에서 해당 스크립트를 실행한다.
$ k6 run --vus 20 --duration 10s script.js # 10초 동안 테스트를 유지, 가상 유저(Virtual Users)를 20명으로 세팅

스크린샷 2025-01-08 오후 6 05 52

  • http_reqs 지표를 보게 되면 평균적으로 1초에 846개의 요청을 처리했다는 뜻이다. 즉, 이 서비스는 1초에 최대 처리할 수 있는 요청의 처리 개수가 약 846개라는 소리이다.
  • 현재 구축한 서비스에서 게시글 조회 API의 Throughput이 846 TPS다라고 얘기할 수 있다.