부하 테스트의 기본 개념

2025. 5. 24. 13:42·Server&load/load test
  1. 부하테스트
    1. 부하 테스트란?
      • 시스템이 어느정도의 부하를 버틸 수 있는지 테스트하는 것을 의미함.
      • 여기서 시스템이란 전체 인프라를 의미함.
    2. 부하테스트를 하는 이유
      • 서비스를 배포하기 전에, 백엔드 서버가 어느정도 요청을 견딜 수 있는지 부하 테스트를 진행.
      • 어느 정도의 트래픽을 감당할 수 있는지 미리 파악함으로써, 부하 상황을 예상하고 대처할 수 있음.
      • 즉, 대규모 트래픽 처리를 위한 필수 작업
  2. 처리량과 시간 지연
    1. 처리량 (Throughput)
      • 서비스가 1초에 처리할 수 있는 트래픽 양
      • 단위는 TPS를 사용하며, 1초에 최대 100개의 API를 처리할 수 있따면, 100TPS.
      • RPS 라고도 한다.(Request per second)
    2. 지연 시간
      • 부하테스트에서 Latency 는 요청에 대한 응답시간을 의미한다.
      • 서비스에 부하 테스트를 했을 때, 평균 응답시간이 2.5초인 경우, Latency 가 2.5 초
      • Throughput 과 Latency 
      • Traffic : 고속도로의 자동차
      • network : 고속도로
      • Throughput : 단위 시간당 목적지에 도착하는 자동차의 대수 (A → C)
        • 만약, A 부터 C 까지 1초에 10대의 자동차가 도착한다면 10tps (rps) 라고도 볼 수 있음.
      • Latency : 출발지부터 도착지까지 걸리는 시간
        • 만약 1개의 자동차가 A부터 C까지 0.5초가 걸린다면 0.5초가 Latency 라고 볼 수 있음.
  3. 병목 지점
    1. 병목 지점
      • 전체 시스템에서 특정 서버 자원이 한계에 도달해, 전체 성능이 저하되는 구간.
      • 시스템 성능 향상을 위해서는 병목 지점을 개선해야 함.
      • 병목 지점의 Throughput 이 곧, 전체의 Troughtput 이다.
        • 위 사진에서 A-B 가 1초에 100개의 요청 처리가 가능해도, B-C 가 1초에 50개의 요청을 처리할 수 있다면 1초에 50개가 Throughput 이다.
      • 특정 지점의 병목현상을 해결하면 다른 곳에서 새 병목지점이 생긴다.
        • A-B-C 에서 B-C 의 Throughput을 200/sec 로 개선했을 때, A-B 가 새로운 병목지점으로 결정된다.
    2. 부하 테스트의 전체 흐름
      • 부하 테스트의 필요성을 인식
      • 부하 테스트 목표 설정은 주로 Throughput 과 Latency 를 활용한다.
      • 현재 시스템이 어느정도 트래픽까지 버틸 수 있는지 부하 테스트를 진행.
        • 부하 테스트 툴을 활용해 부하의 정도를 올리면서 최대 Throughput 을 측정
      • 병목지점을 파악하여 성능을 개선
        • 병목지점의 Throughput이 곧, 전체 Throughput 이며, 목표 설정 Throughput, Latency 를 달성하기 위해 병목 지점을 개선한다.
      • 다시 부하 테스트를 진행하여 목표달성여부를 체크
        • 달성을 못한 경우, 다시 병목지점을 파악하여 성능개선을 반복한다.
    3. 부하  테스트의 주의점
      • 적절한 부하 테스트 시간
        • 1분 간격으로 기록되는 모니터링 도구를 기반으로 정확한 성능 측정을 위해서는 최소 5분 이상 진행해야 일관된 결과값을 얻을 수 있음.
      • 프러덕션 환경과 비슷한 Data 세팅
        • DB 는 Data 저장량과 어떻게 저장되어있는지에 따라 성능 차이가 많이 발생.
        • 즉, 실제 프러적션 환경과 비슷한 환경 세팅 후에 부하 테스트를 진행해야 정확함.
      • 프러덕션 환경과 분리된 환경에서 테스트 진행
        • 부하  테스트에 의해 실 서비스에 악영향을 미칠 수 있음.

'Server&load > load test' 카테고리의 다른 글

트래픽 증가에 따른 시스템 설계 및 확장 방법  (0) 2025.06.02
병목 지점을 해결하여 성능 개선하기  (0) 2025.06.01
병목현상 측정환경 생성 및 병목지점 진단.  (0) 2025.05.31
모니터링과 메트릭  (0) 2025.05.27
'Server&load/load test' 카테고리의 다른 글
  • 트래픽 증가에 따른 시스템 설계 및 확장 방법
  • 병목 지점을 해결하여 성능 개선하기
  • 병목현상 측정환경 생성 및 병목지점 진단.
  • 모니터링과 메트릭
몽자비루
몽자비루
코딩공부 정리용 블로그입니다.
  • 몽자비루
    공부하는 블로그
    몽자비루
  • 전체
    오늘
    어제
    • 분류 전체보기 (173) N
      • python (30)
        • python_selenium (16)
        • python_pygame (3)
      • appium (0)
      • 쿠버네티스 (60)
        • linux (8)
        • shell programming (8)
        • docker (18)
        • cka (23)
      • postman&API (16)
      • QA성장하기 (30)
        • 개발자에서 아키텍트로 스터디 (6)
        • 소프트웨어 공학 이해도 높이기 (6)
        • 테스팅 전문 지식 쌓기 (18)
      • 에러일기 (1)
      • Server&load (35) N
        • AWS (27)
        • load test (5)
        • CI CD (3) N
        • Jmeter (0)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    python
    사드웨어리소스
    LOSTARK
    qa
    테스트스크립트
    테스트 계획서 만들어보기
    도커
    postman
    vi에디터
    linux
    application log
    공존성테스트
    앱공존성
    로스트아크api
    테스트 계획서
    개발자에서아키텍트로
    리눅스
    스터디
    테스트 결과보고서
    QAKOREA
    애플리케이션로그
    로스트아크
    쿠버네티스
    cka
    .cpu
    네트워크 테스트
    e2c
    포스트맨
    k8s
    API
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
몽자비루
부하 테스트의 기본 개념
상단으로

티스토리툴바