본문 바로가기

Dev.../소프트웨어 아키텍처

[SA강좌] Part 2-9 성능에 대한 프로파일

성능에 대한 프로파일

  • 개요

성능은 얼마나 시간이 소요되는가에 대한 문제이다. 이벤트(인터럽트, 사용자의 요청 ) 발생하면 시스템은 응답해야 한다. 이벤트가 시스템에 도착하는 방법과 응답하는 방법은 다양하지만 성능은 기본적으로 이벤트가 발생했을 시스템이 응답하는데 얼마의 시간이 걸리는가에 대한 문제이다.

  • 프로파일

Use Case 대한 scenario 작성하고 빈도수를 가중치로 하여 성능 프로파일을 작성한다.

  • 성능 프로파일을 사용 방법

다음과 같은 절차에 의해 성능 프로파일을 작성하고 사용한다.

그림 -23. 성능 프로파일 작성 절차

  • 성능 프로파일의

-4. 성능 프로파일 예

NO. 

Category 

Use Case 

시나리오에 대한 설명

발생 횟수

최대 동시 사용자 수

응답 시간

S1 

C1 

계좌 이체

인터넷 사용자가 타 은행과 계좌 이체

매일 만건

100명

2초

S2 

C1 

계좌 이체

인터넷 사용자가 지점 간 계좌 이체

매일 10만건

100명

2초

S3 

C1 

계좌 조회

인터넷 사용자가 현재 보유하고 있는 모든 계좌에 대한 조회 요구

매일 100만건

1000명

10초

S4 

C2

일일 마감

일일 마감 처리

매일 5000건

5000명

60초

 

ID 

Category 

C1 

인터넷 사용자

C2 

은행 직원

C3 

은행 내 ATM 사용자

C4 

은행 외부 ATM 사용자

  • 성능 프로파일 작성 지침

성능은 얼마나 시간이 걸리는가에 대한 문제이다. 이벤트(인터럽트, 메시지, 시간의 경과) 발생하면 시스템은 이벤트에 응답해야 한다. 이벤트가 발생하고 응답하는 방식은 다양하다. 그러나 기본적으로 성능은 이벤트가 발생했을 시스템이 응답하는데 시간이 얼마나 소요되는가의 문제이다.

성능을 복잡하게 만드는 원인 중의 하나는 이벤트가 발생하는 이유가 다양하고 이벤트가 시스템에 도착하는 패턴도 다양하다는 것이다. 이벤트는 사용자의 요청에 의해 발생할 수도 있고 다른 시스템에 의해 발생할 수도 있고 시스템 내부에서 발생할 수도 있다. 기반의 은행 시스템은 보통 이벤트를 사용자가로부터 얻는다. 엔진 제어 시스템은 시간의 경과로부터 이벤트를 얻는다.

기반의 은행 시스템에서는 일분 안에 수천 개의 트랜잭션을 처리해야 것이다. 엔지 제어 시스템에서는 정확한 시간을 판단하여 엔진을 점화하는 것이다.

성능 시나리오는 시스템에 도착하는 어떤 서비스 요청으로부터 시작된다. 요청을 만족하기 위해서는 자원이 소비된다. 요청을 처리하면서 시스템은 동시에 다른 요청을 처리해야 지도 모른다.

이벤트가 도착하는 패턴은 주기적인가 비주기적인가로 구분된다. 예를 들어 주기적인 이벤트는 0.01초마다 발생해야 수도 있다. 주기적인 이벤트 도착은 실시간 시스템에서 종종 발생한다. 비주기적인 이벤트 도착은 이벤트가 어떤 확률 분포에 의해 발생하는 것을 의미한다.

다수 사용자가 다른 요인이 이벤트의 도착 패턴을 결정하는데 영향을 끼칠 수도 있다. , 시스템의 성능 관점에서 보면 사용자가 주기적으로 20번을 요청하든지 사용자가 주기적으로 10번을 요청하든지 차이는 없다. 문제는 서버에 이벤트가 도착하는 패턴이다.

이벤트 발생에 대한 시스템의 응답은 latency(이벤트의 도착과 시스템 응답 사이의 시간 간격) 처리에 대한 데드라인, throughput(초당 처리할 있는 트랜잭션의 ), 시스템이 너무 바빠서 처리하지 못하는 이벤트의 수로 결정된다.

성능에 대한 시나리오는 다음 표를 참고하여 작성한다.

표 Ⅲ-5. 성능 시나리오 작성 지침

 

설명

이벤트가 발생하는 장소

이벤트는 외부에서 발생하거나 내부에서 발생한다.

사용자가

이벤트가 어떻게 시스템에 도착하는가

이벤트 도착 패턴은 주기적이거나 비주기적, 산발적이다.

트랜잭션을 시작한다. 초당 대략 1000개의 트랜잭션이 발생한다.

환경

시스템은 다양한 운영 모드를 가질 수 있다. 예를 들어 정상적인 운영 모드거나 긴급, 과부하이다.

시스템은 정상 모드이다.

응답

시스템은 도착한 이벤트를 처리하며 이것은 시스템 환경을 변화시킨다.

트랜잭션이 처리된다.

응답에 대한 측정치

응답에 대한 측정치는 도착한 이벤트를 처리하는데 걸리는 시간, 특정 시간 안에 처리할 수 있는 이벤트의 수, 처리하지 못하는 이벤트의 수이다.

트랜잭션은 평균 2초의 latency안에 처리되어야 한다.