대용량 트래픽이란 몇건일까

2025. 5. 1. 17:37·Web

최근 대용량 트래픽이 몇건의 트랜잭션(TPS)이라고 생각하는지 질문을 받았었다.

 

TPS란 초당 처리되는 트랜잭션의 수
-> "서버가 1초 동안 몇 개의 요청(또는 처리 단위)을 처리했는가"를 나타내는 성능 지표이다.

 

GPT가 세상에 나오기 이전에 내가 웹 검색을 통해 알아봤을때는, 그 기준이 모호하고 서비스에 따라 다르다. 라는식으로만 인지하고 넘어갔었다. 오늘 GPT에게 물어보니 수만건 정도면 대용량 트래픽이라고한다. 내가만든 골라조 사이트를 통해 부하테스트를 해보자. 

 

먼저 사용할 도구는 "k6"라는 테스트용 툴이다.

 

brew install k6

명령어를 통해 손쉽게 다운로드 할 수 있다.

// loadtest.js
import http from 'k6/http';
import { check, sleep } from 'k6';

export const options = {
  vus: 3000,           // 동시 사용자 수
  duration: '30s',   // 30초 동안 테스트
};

export default function () {
  const res = http.get('https://golrajo.com/api/surveys/search?keyword=&page=0&size=12&sortOrder=POPULAR');

  check(res, {
    'status is 200': (r) => r.status === 200,
  });

  sleep(1);  // 1초 쉬고 다음 요청
}

k6의 장점으로는 개발자 친화적이라는 것이다. 위와같이 js를 통해 테스트 코드를 작성할 수 있다. 그렇기 때문에 git으로 부하테스트 코드를 관리할 수 있다는 장점도 있다.

 

나는 위와같은 코드로 간단한 부하테스트를 진행했다. 동접자 3000명으로 30초동안 테스트하는 코드이며, 사이트 메인페이지에 진입했을때 조회하는 설문 목록 조회 api를 테스트 할 예정이다.

 

k6 run loadtest.js

위의 명령어를 통해 실행시켜보자. 

33%의 요청만 정상적인 응답을 받을 수 있었다. 해당 서버의 스펙은 아래와 같다. PC를 서버로 운용하는이기때문에 웹서버 이외에도 리소스를 소모할 수 있는 환경이다. 또한 프로토타입의 사이트라 성능은 전혀 고려하지 않았다. 

CPU 모델명 AMD Ryzen 5 5600G with Radeon Graphics 2021년 출시, 6코어 12스레드, 내장 그래픽 포함
총 논리 코어 수 (CPU(s)) 12개 하이퍼스레딩 포함 (6 코어 × 2 스레드)
물리 코어 수 (Core(s) per socket) 6개 실제 물리 CPU 코어 수
L3 캐시 용량 16 MiB CPU 전체 공유 캐시, 멀티코어 작업에 중요

 

총 메모리 (Mem total) 7.5 GiB
사용 중 (used) 3.4 GiB
여유 (free) 2.8 GiB

 

33%의 실패를 Redis의 캐시를 이용해서 개선해보았다.

위와같이 86%으로 개선할 수 있었다. 하지만 응답속도가 매우 느려 (약 2초이상) 사용자 입장에서는 불편함을 많이 느낄 수 있는 수치이다.AI에게 문의한 결과 해당 서버의 스펙은 300VU(가상 유저)가 적합하다고 한다. 서버는 생각보다 비싸다는걸 느낄 수 있었다. 컴퓨터가 여러대라면 로드벨런서로 부하분산을 해보고싶은데, 아쉬운 부분이다. aws는 비싸서 해보지 않을 예정이다.

 

컴퓨터에서 가상 노드를 여러개 만들고 k8s를 통해 부하분산을 연습해보는것도 좋은 방법이겠다.

'Web' 카테고리의 다른 글

키-값 저장소 설계  (0) 2025.05.28
AWS DOP-C02 자격증 시험 후기  (1) 2025.05.17
EKS 사용해보기  (1) 2025.04.24
AWS DOP - CloudFormation (3)  (1) 2025.04.19
Route53에서 구입한 도메인 ACM발급 실패  (0) 2025.04.19
'Web' 카테고리의 다른 글
  • 키-값 저장소 설계
  • AWS DOP-C02 자격증 시험 후기
  • EKS 사용해보기
  • AWS DOP - CloudFormation (3)
마술사의 수습생
마술사의 수습생
언젠간 당신처럼 되고 싶어요.
  • 마술사의 수습생
    개발 기록 블로그
    마술사의 수습생
  • 전체
    오늘
    어제
    • 분류 전체보기 (53)
      • Web (50)
      • 일기 (2)
      • 잡담 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
마술사의 수습생
대용량 트래픽이란 몇건일까
상단으로

티스토리툴바