성능 관련 기초 이론
※ 모델링 - 시스템에 영향을 미칠 수 있는 요소들을 추출하여 이들의 연관관계를 도식화하는 것
- Queuing Network Model(QNM)
: 1976년 Jeffrey P. Buzen이 제안, 1978년 Peter J.Denning&Jeffrey P. Buzen에 의해 확장
: 컴퓨터 시스템의 대기 행렬을 의미하는 큐들의 네트워크
: 다중 서버에 대한 모델링이 가능
: 'Operational Law'에 의해 분석
- 단일 서버 QNM
: 서버가 하나인 경우 사용(2Tier)
: 사용자가 서버에 Request하는 경우, Queue를 거쳐 서비스 요청
: Parameters - 부하 강도(사용자의 호출 빈도), 서비스 요구량(사용자 요청을 처리하는 데 소요되는 시간)
: Operation Law
→ 이용률(Utilization): 전체 측정 시간 대비 서비스 시간의 비율
→ 응답시간(Response Time): 사용자가 서버에서 머물렀던 평균 시간(서비스 시간+대기 시간)
→ 큐 길이(Queue Length): 서버에 머무르고 있는 총 사용자 수(서비스 + 대기)
→ 처리량(Throughtput): 서버가 서비스 처리 종료 후 서버를 출발하는 비율
: Operation Law의 의미
→ 이용률(Utilization): 대상 서버에 대한 가용 자원 대비에 현재 이용되고 있는 정도
0≤이용률≤1, 1이 되면 서버에 병목현상 발생, 부하강도가 증가하면 이용률도 증가
→ 응답시간(Response Time): 사용자가 서비스를 요청하고 받을 때까지 걸리는 시간
이용률(부하강도)의 증가에 따라 기하급수적으로 증가
→ 큐 길이(Queue Length): 큐를 점유하고 있는 사용자 수
이용률(부하강도)의 증가에 따라 기하급수적으로 증가
→ 처리량(Throughtput): 대상 서버에서 요청 건수의 대비 처리량
이용률의 증가에 따라 같이 증가, 이용률이 1이 되면 일정 수준 유지
- 다중 서버 QNM
: 서버가 여러 개일 경우 사용(3Tier over)
: 사용자가 서버에 Request하는 경우, Web Server → WAS → DB 서버 등을 거쳐 서비스 요청 및 처리
: Parameters - 부하 강도(사용자의 호출 빈도), 실행 시간(각 개별 서버 별 요청 처리에 소요되는 시간)
※ 부하 강도는 시스템의 종류에 따라 각각 다르게 정의될 수 있음
(ex. TP-Monitor: 요청건수, Batch: 동시 사용자, 웹 기반, C/S 시스템: 동시 사용자 수&평균 Think time 등)
: Operation Law는 단일 서버 QNM과 유사
- Operation Law
: QNM에서 서버의 여러 특성들을 파라미터화하여 주요 평가 항목들을 추출할 때 사용하는 주요 공식의 기반
: 파라미터화 된 기본 항목들은 측정 도구에 의해 측정 가능
※ 기본 항목
→ T: 대상 시스템을 모니터링한 총 소요 시간(초)
A: T시간 동안 시스템에 요청된 총 요청 건수(건)
C: T시간 동안 시스템에서 처리된 총 처리 건수(건)
B: 시스템이 요청을 처리하기 위해 사용된 총 서비스 시간(Bysu Time, 초)
W: 시스템이 요청을 처리하기 위해 사용된 총 응답 시간(서비스 시간 + 대기 시간)
Z: 사용자가 다음 요청을 준비하기 위해 소요된 Think time(초)
N: T시간 동안 시스템을 사용하고 있는 사용자 수(명)
※ 도출되는 성능 수치 항목
→ 호출비율(Arrival Rate): 단위 시간당 시스템으로 들어오고 있는 건수(λ=A/T)
→ 처리량(Throughtput): 단위 시간당 시스템에서 처리 되고 있는 건수(X=C/T)
→ 이용률(Utilization): 총 소요 시간 대비의 총 서비스 시간 비율(U=B/T)
→ 평균 서비스 시간(Service Time): 요청을 처리하기 위해 소요된 평균 서비스 시간(S=B/C)
→ 응답 시간(Response Time): 요청을 처리하기 위해 소요된 평균 응답 시간(R=W/C)
- Utilization Law
: U=B/T=(B/C)*(C/T)=S*X
: 총 소요 시간 대비의 총 서비스 시간 비율 = 단위 시간당 시스템의 처리 건수 * 처리 건당 소요되는 평균 서비스 시간
- Little's Law
: 서버상의 큐 길이를 설정할 때 참조할 수 있는 공식
: Q(큐의 길이) = W/T = (W/C)*(C/T) = R*X
- Response Time's Law
: X(처리량) = 총 호출 건수/총 소요 시간 = N*(T*(R+Z))/T = N*(R+Z)
- Forced-Flow Law
: 개별 리소스와 전체 시스템 사이의 상관 관계를 보여주는 공식
: C - 전체 시스템에 대한 처리 건수
Ck- 개별 리소스에 대한 처리 건수(k번째 리소스)
Vk- 개별 리소스에 대한 Visit Ratio(k번째 리소스)
Dk- 개별 리소스에 대한 서비스 요구량(k번째 리소스)
Vk = Ck/C(k번째 리소스)
Xk = Vk*X (k번째 리소스에 대한 처리량)
Uk = Xk*Sk (k번째 리소스에 대한 사용율)
= X*Vk*Sk
= X*Dk
- 처리량 상관관계
: Forced-Flow Law에 의해 도출된 각 리소스에 대한 처리량을 통해 전체 시스템의 처리량을 정의할 수 있음
: 전체 시스템을 구성하는 n개의 독립 서버의 각 처리량을 Tn이라할 때, 다음과 같이 처리량을 도출할 수 있음
※ 전체 Throughput(단, 각각의 서버가 동일한 리소스에 의해 병목을 직면하고 있는 경우)
T = 1/(1/T1+1/T2+1/T3+1/T4+1/T5+....+1/Tn) = 1/(∑(1/Tn))
※ Throughput of Block A&B = 1/(1/a+1/b)
- 병목 지점 분석
: 임계 지점 부근의 처리량(X)과 응답 시간(R)의 상관 관계
→ X(N)≤min{1/Dmax, N/(D+Z)}
R(N)≥max{D, NDmax-Z}
where Dmax: 병목 지점의 서비스 시간
D=∑Dn
전제조건: 어떠한 리소스라도 이용률은 1이하이다.
N명의 사용자를 처리하고 있는 시스템의 응답 시간은 1명의 사용자를 처리하는 시스템보다 더 빠를 수 없다
: 처리량의 경우 입계 사용자 수 근방까지 시스템의 용청을 원할하게 처리, 포화 지점 이후 병목 발생 수평을 유지
: 임계 사용자 수 지점의 처리량은 해당 시스템의 최대 처리량 or 임계 처리량
: 응답 시간은 임계점 이전은 일정하게 유지, 포화 지점 이후 병목 발생으로 응답시간 증가
===================================================================================================================
각종 공식들에 눈돌아가네요...@_@;
DB와는 직접적인 관련이 없습니다만... 알아두시면 좋으실 듯 해서 두번째 정리본 올립니당~^^ㅋ
출처 : http://cafe.naver.com/prodba/3664
'연구개발 > DBA' 카테고리의 다른 글
tempdb 분리 (0) | 2016.03.15 |
---|---|
성능 모니터 (0) | 2015.12.16 |
리소스 잠금 및 리소스 확인 (0) | 2015.09.07 |
RECOMPILE (0) | 2015.09.04 |
tempdb 대량 I/O 발생시키는 쿼리 확인 (0) | 2015.09.01 |