부하테스트 ‐ (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

대시보드 확인
http://{k6 public ip}:5665

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

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

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