부하 테스트

조한빈·2021년 5월 26일
0

테스트

목록 보기
1/1

성능 테스트


서비스의 성능을 측정하기위해 시스템을 실제 사용될 것과 같은 환경에서 작동시켜보는 것

  1. 스파이크 테스트
  2. 부하 테스트
  3. 스트레스 테스트
  4. 내구성 테스트

성능 테스트 용어

  • 트랜잭션(Transaction)
    • 일정한 업무 단위.
    • 웹 서비스에서는 요청과 응답이 하나의 트랜젝션을 이룸
    • 사용자 수 = 트랜젝션 수???
  • TPS
    • Transaction Per sec
    • 1000TPS = 1초당 1000개의 트랜젝션을 해결
  • 응답시간
    • 사용자가 요청을 보낸 시점부터 결과가 보여지기까지의 시간

성능 테스트의 목적

  • 응답 처리량 저하, 병목 구간등을 출하 전에 발견하여 조치함

  • 모든 구간에 Log를 걸어 이상 발생시 Log확인

    • nginx(또는 Tomcat), DB로그 확인
    • 소스코드 주요 부분에 Logging 및 확인
    • 서버 별 CPU, MEMORY 추이 확인
    • 또는 상용 모니터링 도구도 활용함 : APM도구 등

성능 테스트 도구

  • nGrinder
    : 그루비 언어

  • Locust
    : 파이썬 언어 기반에서 돌아가는 테스트

  • LoadRunner
    : 최강의 도구라 불린다

  • Jmeter
    : 오픈소스 도구

성능 테스트 부하는 얼마나?

  • 동시 접속 트랜젝션 예상은 얼마나?
    • 합의가 필요한 부분이나, 일반 웹 시스템의 경우 전체 사용자의 5~20% 정도로 잡는다
    • 특수한 경우는 80%까지도 잡는다 >> 수강신청
  • 도메인별 예상 사용자 수

성능 테스트 사례 (1)

  • 250 유저 내구성 테스트
    • 전반적으로 그래프가 튀지않고 안정적인 TPS를 유지하는 것을 알 수 있다.
      normalcase
  • 처음에는 안정적이지만, 10초이후에 모듈에 행이 걸렸다가 갑자기 풀리는 현상이 발생한다. 그리고 이후에는 TPS가 전반적으로 낮아짐.
    badcase

개선 작업

  • 데이터 베이스에서는 정규화와 인덱싱을 추가로 작업 가능

0개의 댓글