부하테스트 ‐ (4) 게시글 목록 페이지 조회 부하테스트 - ttasjwi/board-system GitHub Wiki

부하테스트 계획

  • 사용자들이 1-500 게시판의 게시글에 접근
  • 대부분 사용자(50%)는 1번 게시판 점근, 나머지는 2-499 게시판 접근
  • 20페이지에 접근하도록 하기

K6 부하테스트 스크립트 - 임의 게시판 20페이지

vim script.js
import http from 'k6/http';
import {sleep} from 'k6';

export const options = {
  // 부하를 생성하는 단계(stages)를 설정
  stages: [
    // 10분에 걸쳐 vus(virtual users, 가상 유저수)가 50에 도달하도록 설정
    {duration: '10m', target: 50}
  ],
};


function pickBoardId() {
  const random = Math.random()

  if (random < 0.5) {
    return 1;
  }
  // 2 ~ 500
  return  Math.floor(Math.random() * 499) + 2;
}

export default function () {
  // API 주소로 GET 요청
  const boardId = pickBoardId()
  http.get(`http://13.125.89.114/api/v2/boards/${boardId}/articles?page=20&pageSize=50`);
  sleep(1);
}

실행

K6_WEB_DASHBOARD=true k6 run script.js

image


대시보드 확인

  • http://{k6 public ip}:5665

image

  • VUs를 1-50까지 10분동안 점진적으로 증가
  • VUs 를 증가시키더라도, 초기부터 HTTP Request Rate 가 둘쑥날쑥함
    • Throughput(처리량)
    • TPS

image

  • HTTP Request Duration (지연시간)
    • latency
    • 1초, 2초, ... 20초, 30초까지 증가.

image

  • AWS 리소스 모니터링 결과, EC2 자체의 CPU 사용률은(6.21%)는 여유롭고, RDS 쪽에서는 CPU 사용률이 71.5%정도까지 도달.
  • RDS 쪽이 병목지점이 아닌가 의심해볼 수 있음.