728x90
반응형

테스트 항목

 

Application

 

- TPS (Transaction Per Second)

 

- 응답시간 (Response Time)

 

 

 

Middleware

 

- Message Queue

  • RabbitMQ

 

- Database

  • Mysql (slow query, Index)

 

- Web Server

  • Apache (Network Outbound io <Bandwidth>)

  • Tomcat (Idle Tread)

 

 

Infra

 

- CPU

 

- Memory (Swapping)

 

- Disk IO (파일 시스템)

 

- Network IO (고용량의 파일이나 이미지 전송에서 병목)

 

 

 

테스트 종류

 

성능 (Performance) 테스트

 

- 시스템의 요소가 특정 상황에서 어느 정도의 성능을 보이지는 측정하는 테스트

  • 기존 시스템에 대한 BenchMarking 하는 것

  • Application의 결함을 찾는 목적은 아님

  • 성능에 대한 정확하고 면밀한 모니터링을 진행

 

 

부하 (Load) 테스트

 

- 임계치의 한계에 도달할 때까지 시스템의 부하를 꾸준히 증가시키며 진행하는 테스트

  • 부하 상황에서 시스템이 어떻게 동작하는지 모니터링하고 정보 확인

  • 발생시키는 부하는 실제 시스템에 적용될 예상 트래픽이어야함

  • Volume Test 또는 Endurance Test라고 함

  • Web Server, Database, Infra등 모든 요소의 한계를 찾아서 미래에 발생할 부하에 대하는 것이 목표

 

 

스트레스 (Stress) 테스트

 

- 시스템 과부하 상태에서 어떻게 작동하는지를 검사하는 테스트

  • 시스템의 실패를 확인하고 모니터링하는 과정이 정상적으로 이루어지는지

  • 민감한 정보나 보안상의 문제가 노출되지 않는지

  • 장애 조치와 복구 절차과 효과적이고 효율적인지

 

 

Soak 테스트

 

- 한참 동안 부하를 가해서 메모리 누수나 자원 누수를 알아내는 테스트

 

 

Negative 테스트

 

- 부하를 발생시킨 상태에서 특정 시스템 구성 요소 중 일부를 제거하는 테스트

 

 

Fatigue 테스트

 

- 대역폭 용량을 뛰어넘는 부하를 발생시키는 테스트

 

 

 

Graph를 통한 분석

 

 

 

포화점 (Saturation Poing)

 

- 시스템은 언제나 처리에 한계가 있으므로 어느 순간에 더 이상 증가하지 않고 그래프가 꺽임

 

 

버클존 (Buckle Zone)

 

- 시스템 과부하로 인해 내부 자원이 서로 경쟁 상태나 적체 상태가 심해지기 때문에 최대 처리량보다 더 떨어지는 경우가 발생

 

 

최대 성능, 비즈니스 관점 최대 성능

 

- 포화점에서 얻는 최대 처리량이 실제 최대 성능으로 보면 안됨

 

- 비즈니스 관점에서 최대 처리량을 재정의하고 최대 처리량과 여유를 두는 것이 좋음

 

 

 

테스트 용어

 

Workload

 

- 주어진 시간동안 컴퓨터가 처리한 일의 양 또는 그러기 위해 부과된 연속된 일

 

- Web 기반 시스템에서는 주로 HTTP 요청이 Workload 역활을 함

 

 

Metric

 

- 응답시간 (Response Time)

 

- 출력량 (Througput)

 

- TPS (Transaction Per Second)

 

- CPU의 연산 속더인 MFLOPS (Millions of Floation-point Operations Per Second)

 

 

응답 시간 (Response Time)

 

- 인터넷에서 패킷이 라우팅되는 시간도 포함

 

- 평균 응답 시간 (Mean Time)이 Web Server형 시스템의 성능 분석에서 중요

 

 

처리량 (Throughput)

 

- PPS (page Per Second) : 웹 시스템에서 특정 페이지에 대한 요청

 

- RPS (Request Per Second)

 

- TPS (Transaction Per Second) : 데이터베이스의 트랜잭션 기반 시스템에서 사용

 

- BPS (Bits Per Second) : 네트워크의 경우는 초당 비트 수

 

 

Reliability

 

- 에러의 확률 혹은 에러 간의 평균 시간으로 측정

 

- Error-Free Seconds

 

 

Bottleneck

 

- 구성 컴포넌트 중 활용도가 가장 높은 컴포넌트를 의미

 

- 튜닝이란 활용도가 100%인 컴포넌트가 정말 100%로 사용되어야 하는가를 확인하고, 각 컴포넌트 간 활용도의 밸런스를 맞추어서 전체 시스템이 가장 좋은 성능을 발휘하도록 개선하는 작업

 

 

 

Tool

 

Monitoring Tool

 

- APM (Application Performance Monitoring)

  • 제니퍼

  • Scouter

  • Pinpoint

  • 기타 등등

 

 

Testing Tool

 

- JMeter

 

- NGrinder

 

- LoadRunner

 

 

Infra Tool

 

- Cacti

 

- Ganglia

 

- Linux Command

 

 

참조 URL

https://nesoy.github.io/articles/2018-08/Testing-Performance

반응형

'Web' 카테고리의 다른 글

HAProxy  (2) 2020.01.17
Keepalived & VRRP  (0) 2020.01.17
PinPoint  (0) 2019.04.09
Crawling (크롤링)  (0) 2019.04.09
REST & RESTful & REST API  (0) 2019.04.09

+ Recent posts