애플리케이션 모니터링
와탭랩스 CTO이신 김성조님께서 얼마전에 "Little's Law 수식 성능테스트에서 활용하기" 동영상을 올렸는데요. 성조님의 설명을 듣다보니 Little's Law에 대한 궁금증이 생길 수 있겠더라구요. 그래서 Little's Law에 대해 소개를 하려고 합니다.
Little's Law에서 Little의 의미가 궁금한 분이 계실까봐 말씀드리면 Little's Law는 John Little가 고안한 마케팅 대기열 이론입니다. MIT 교수이면서 마케팅 과학 분야에서 공헌한 존 리틀 교수는 L = λW 공식을 수학적으로 증명하였습니다. Little's Law는 은행이나 편의점에서 줄을 서는 경우 평균적으로 어떤 일이 발생하는지 알려줍니다. Little's Law 대기열이 존재하는 공간에서 시간과 사람의 관계를 정의합니다. 이 개념은 다양한 분야에서 사용되고 있지만 IT 업계에서는 서비스의 성능 측정에 사용되고 있습니다.
Little's Law의 공식, L = λW에서 L은 상점에 있는 평균 고객 수, λ(람다)는 대기열에 있는 사람 수, W는 상점에 머무르는 시간을 의미합니다.
편의점
편의점의 경우 시간 당 100명이 오는데(λ), 고객 당 평균 6분(0.1시간)을 소모한다면 공식은 100(λ) × 0.1(W) 이 되므로 편의점에 머무르는 고객은 평균 10명(L)입니다.
식당
식당의 경우를 생각하면 점심에 시간당 평균 100명의 고객이 식사를 하는데, 고객당 평균 30분을 소모한다면 Little's Law 공식은 100(λ) × 0.5(W) 이므로 점심 시간동안 식당에 머무르는 고객은 50명입니다. 즉 점심 고객을 받기 위해서는 4인석 테이블이 최소 13개가 있어야 합니다.
고등학교
더 쉬운 예를 든다면 A 고등학교가 매년 300명의 학생을 받는다면 고등학교는 학생 당 3년을 머무르므로 공식은 300(λ) × 3(W)가 되고, 고등학교를 다니는 학생은 900명이라고 예상할 수 있습니다.
W(대기시간) 을 조정하여 공간에 머무르는 고객의 숫자(L)를 변경할 수 있기 때문에 Little's Law는 항공사 카운터, 놀이공원, 제조 및 산업시설 등을 설계할 때 유용하게 사용할 수 있습니다.
Little's Law를 다시 설명하면 공간 내에 머무는 고객 수(L)는 고객이 유입되는 양과(λ)과 고객이 머무는 시간(W)에 비례한다는 것입니다. 이를 IT 서비스의 유입량으로 표현하면 다음과 같습니다.
공간내에 머무르는 객체수(Active User)는 객체의 유입량(TPS)과 객체가 머무르는 시간(Response Time)에 비례한다.
이른 좀더 자세하게 표현하면 아래와 같은 공식이 나옵니다.
CU(동시사용자) = λ(TPS) × W(Request Time + Think Time)
여기서 Think Time은 사용자가 서비스 사용 중간에 웹페이지를 보거나 생각하는 시간을 TPS는 초당 트랜잭션을 의미합니다. 그리고 Concurrent User(동시사용자) 를 성능 테스트시에는 VU(가상 사용자)로 표기하기도 합니다. 예를 들어 초당 10건의 트랜잭션이 발생하고 있고 객체가 머무르는 시간이 10초라면 동시사용자는 100명이라고 생각할 수 있습니다.
그럼 이제 애플리케이션 성능 분야의 대가이신 김성조님의 5분 강의를 들으시면 애플리케이션의 성능에 대한 짧은 설명을 들어보는 건 어떨까요?