[성능 테스트] 성능테스트 기본 지식

2022. 7. 4. 17:43TIL

1. 웹 시스템 가용성


  • 가용성: 서버와 네트워크 등의 시스템이 정상적으로 사용 가능한 정도(Availability) 즉, 서비스가 다운되지 않고 정상적으로 서비스를 유지하는 것

서비스가 다운되는 이유: 네트워크 장애, 전원 장애, 하드웨어 문제, 소프트웨어 오류, 서비스 점검시간 등

2. 높은 가용성을 가지는 시스템을 설계하는 방법


서비스가 정상적으로 작동되지 않는 시간을 최대한 짧게 만든다.

  1. 시스템 확장
  • Scale Up/Down
  • Scale Out/In
  1. 시스템 이중화
  • 시스템 백업 배치 운용 (이중화, 삼중화)
  • 멀티 클라우드

Scale-Up

기존의 서버를 보다 높은 사양으로 업그레이드하는 것을 말한다.

하나의 서버의 능력을 증강하기 때문에 수직 스케일링(vertical scaling)이라고 한다.

Scale-Down

Scale-Up의 반대. 다운그레이드

Scale-Out

Scale-Out은 장비를 추가해서 확장하는 방식이다. 기존 서버만으로 용량이나 성능의 한계에 도달했을 때, 비슷한 사양의 서버를 추가하여 기존 서버의 부하를 분담해 성능 향상을 기대할 수 있다.

서버를 추가로 확장하기 때문에 수평 스케일링(horizontal scaling)이라고도 불린다.

Scale-In

Scale-Out의 반대

장단점 비교

3. 부하 테스트 기본 지식


  • 테스트 목적: 병목지점과 같은 성능 이슈를 찾아 시스템의 가용성을 높이는 것
  • 성능에 문제를 줄 수 있는 것들
    • 사용자 증가
    • 동시간에 많은 배치 작업 발생
    • 급증하는 DB 참조 > DB Lock
    • 캐시 문제: 캐시는 부하 테스트 시 성능 차이가 많이 날 수 있다.
  • 시스템 성능 지표
    • TPS(Transaction Per Second)
      • TPS = (Active User) / (Average Response Time)
반응형

'TIL' 카테고리의 다른 글

[Python] os.system VS subprocess  (0) 2022.06.03
NginX와 Gunicorn  (0) 2022.01.03
웹 서버와 WAS  (1) 2022.01.02