본문 바로가기
개발공부

성능 테스트 관련 용어 정리

by bzerome240 2023. 5. 29.

 

기능 배포 전 성능 테스트 단계도 필요하다.

성능 테스트에는 부하 테스트와 스트레스 테스트가 있다.

성능 테스트를 통해 최악의 상황을 대비할 수 있다.

 

 

OOM (Out of Memory) 문제

코드에 문법 문제가 없더라도, 서버에서 사용자마다 일정한 메모리를 할당할 때 서버의 메모리 용량을 넘으면 문제가 발생할 수 있다.

 

 

부하 테스트

예상 부하에서 사용할 때 소프트웨어가 어떻게 수행되는지 테스트하는 것

의도적으로 부하를 증가시켜 좋은 성능을 위한 임계값을 찾고, 정상적인 트래픽에서 시스템이 어떻게 작동하는지 테스트할 수 있다.

 

스트레스 테스트

예상치 못한 극도의 압력 부하를 받을 때 소프트웨어가 어떻게 수행되는지 테스트하는 것

복구하는 방법을 찾기 위해 부하를 상한까지 높여 테스트한다.

 

부하 테스트 시 주의할점

실제 서비스중인 서버에 무리하게 부하 테스트를 할 경우 중단될 수 있다

AWS 같은 클라우드 요금제 서버인 경우 과다한 요금이 청구될 수 있다.

--> 실제 서버와 같은 사양의 스테이징 서버에서 테스트를 진행하는 것이 좋다.

 

성능 측정의 지표

  • 처리량
  • 응답시간
  • 속도
  • 안정
  • 자원사용

 

성능 테스트 기준 

1. 예상 TPS 보다 여유롭게 성능 목표치를 잡고 인스턴스를 구성해야한다.

2. API에 기대하는 Latency를 만족할때까지 성능 테스트를 해야한다.

단일 요청에 대한 latency가 몇인지 확인하기 (가상 유저수 1)

단일 요청에 대한 latency가 기대 latency보다 높다면 scale out으로 해결할 수 없다. (= 코드가 비효율적 or 네트워크 latency 발생)

 

 

성능 테스트를 위한 자동화 도구

테스트 프로세스를 자동화하면 효율성이 향상된다. -> 시간 비용 절약, 정확한 결과를 빠르게 제공

 


 

관련 용어

 

PoC (Proof of Concept)

: 기술 검증; 신기술 도입 전 검증을 위해 사용하는 것

 

BMT (Bench Mark Test)

: 성능 테스트; 실제 운용 환경과 동일한 기준에서 부하테스트, 스트레스 테스트 등을 진행하는 것

유사한 소프트웨어 제품을 측정하는 테스트 -> 유사한 sw 유형 간의 객관적인 비교 결과를 제공한다.

 

트랜잭션 (Transaction)

: 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위

 

TPS (Transaction Per Second)

: 1초에 처리할 수 있는 트랜잭션 수

성능 테스트의 가장 중요한 지표

 

PPS (Page Per Second)

: 웹 시스템에서 특정 페이지에 대한 요청

 

응답시간

: 사용자가 요청을 보낸 시점부터 처리 결과가 보일때까지의 시간

평균 응답 시간이 웹서버 시스템의 성능 분석에서 중요하다.

 

workload

: 주어진 시간동안 컴퓨터가 처리한 일의 양 ex) HTTP 요청

 

Reliability

: 에러 간 평균 시간으로 측정

 

scale-up

: 서버 버신의 스펙을 높이는 방법

유저가 많아지면 스펙업으로 해결이 안된다. 이때는 스케일아웃으로 해결해야한다.

 

scale-out

: 서버 머신의 수를 늘리는 방법

 


 

참고

 

 

🧪 Artillery 부하 테스트 사용법

부하 테스트 부하 테스트 (stress test) 란 서버가 얼마만큼의 요청을 견딜 수 있는지 테스트하는 방법이다. 우리는 작성한 API 에 병목 현상과 얼마 만큼의 트래픽을 수용할 수 있는지에 대한 여부

inpa.tistory.com

 

스트레스 테스트 툴(Artillery)로 성능 측정하기

해당 내용은 Class101의 현직 대기업 개발자 푸와 함께하는 진짜 백엔드 시스템 실무! 강의를 기반으로 작성했습니다.Artillery를 이용해서 부하 테스트(Stress Test)이전에 node를 설치했었기 때문에 넘

velog.io

 

 

성능테스트 / 부하테스트 / 스트레스 테스트

성능 테스트 (Performance Test) 특정 워크로드에서 소프트웨어 어플리케이션의 속도, 응답 시간, 안정성, 확장성, 및 리소스 사용량을 테스트하는 테스트 프로세스 시스템의 요소가 특정 상황에서

rae-gi.tistory.com

 

 

부하분산 테스트 설명 및 용어

테스트 항목 Application - TPS (Transaction Per Second) - 응답시간 (Response Time) Middleware - Message Queue RabbitMQ - Database Mysql (slow query, Index) - Web Server Apache (Network Outbound io ) Tomcat (Idle Tread) Infra - CPU - Memory (Swappin

lascrea.tistory.com

 

728x90
반응형

댓글