Little’s Law를 활용하여 계산해 보기

Updated:

Little’s Law의 개념에 대해서는 홍성진 매니저님의 “Introduce to Performance test(1/5)” 글에서 이미 자세하게 살펴본 바 있습니다. 하지만, 실제 업무에서 막상 계산을 해보려고 떠올려 보면 단순한 것 같으면서도 직관적으로 잘 와닿지 않는 공식이기도 합니다. 이번 글에서는 몇가지 단순한 계산 예시를 통해 좀더 공식에 대한 이해를 돕고자 합니다.

1. 최근 반가운 현상들

전사 성능테스트를 지원하는 인원이 제한되어 있다보니, 프로젝트를 지원하고 있는 중에도 다른 프로젝트들의 다양한 문의에 응대하거나, 불가피하게 타 PJT 현장을 방문해 사전 점검 등을 추가로 지원해야 하는 경우가 가끔씩 발생합니다.

특히, ‘차세대’란 이름이 붙은 PJT들의 경우, 고객의 다양한 성능 요구사항에 맞게 PJT에서 PMO 역할을 담당하시는 분들이 성능테스트와 관련해 구체적인 문의를 해오시는 경우가 종종 있습니다.

다행스러운 현상은, 최근에 만난 PJT PMO 분들은 모두 성능 테스트에 대한 기본적인 이해를 가지고, 본인이 고객과 성능에 관련된 협의를 진행하며, 성능 목표 수준과 수행 범위 및 방법등에 대해 명확한 의사결정 작업을 주도적으로 수행하고 있다는 점입니다.

고객이나 PJT에서 발의되는 성능 테스트 대상에 대해서도 ‘실제 성능 테스트가 필요한 대상인지’를 잘 구분하여 정리하고 있으며, 고객이 기존의 수행 사례와 예시 등을 들어 성능 목표를 요구하는 경우에도, 직접 해당 문서를 분석하고 작성하여 현재 PJT에 맞게 목표를 수립한 후 전사조직에 검토를 의뢰하기도 합니다.

다만, 아쉬운 것은 기존의 업무적인 경험과 관련 사례들을 잘 활용하여 계획 및 설계를 수행하시기는 하지만, 정작 성능 테스트 및 도구와 관련된 이론적인 교육을 수강하신 경험은 없으시기 때문에, 의외로 단순한 논리와 기준에 대해 궁금해 하시는 경우가 많습니다.

이와 관련되어 많이 물어보시는 개념들 중 하나가 바로 Little’s Law에 관련된 것입니다.

Little's Law

2. Little’s Law가 말해주는 의미들

우선, 공식에서 말하고 있는 성능과 관련된 요소는 다음 세가지 입니다.

  • TPS(초당처리건수)
  • Active Users(부하사용자수)
  • Average Response Time(평균응답시간)

이들 셋간의 관계는 다음과 같습니다.

Number of Active Users = TPS x Average Response Time(Sec)

현재 부하를 발생시키고 있는 사용자 수를 계산하기 위해서는, 초당처리건수에 이들의 응답시간 평균을 곱해주면 된다는 내용입니다. 이해를 돕기 위해, 식당의 예를 들어 보겠습니다.

예시 1) 점심 Peak 시간인 12시부터 오후 1시 사이의 1시간 동안 360명의 손님이 방문하는 햄버거 가게가 있습니다. 매장 내 손님들의 평균 식사시간은 10분 정도인 것으로 확인되었을 때, 이 식당 안에 머무는 손님 수는 평균적으로 몇명 정도일까요?

In-N-Out Hamburgers

Source:In-N-Out Hamburgers

답을 계산해 보면, 1시간에 360명이 방문하고, 평균 식사시간이 10분(=1/6시간)이므로, 이 식당에 머무는 평균 손님 수는 360명 x 1/6시간 = 60명 수준입니다. 우리가 알고 있는 Little’s Law에 하나씩 대입해서 다시 계산해 보면 다음과 같습니다.

  • TPS(초당처리건수) = 360명 ÷ 3,600초(=1시간) = 0.1TPS
  • 평균식사시간 = Average Response Time(평균응답시간) = 600초(=10분)
  • 식당에 머무르는 평균 손님 수 = Number of Active Users = 0.1TPS x 600초 = 60명

좀 더 쉬운 예를 들어보겠습니다.

예시 2) SK University가 1년에 모집하는 신입생 정원이 5천명이고, 한 학생당 졸업까지 머무는 평균 기간이 4년이라면 이 대학교를 다니는 학생은 평균 몇명일까요?

답은 2만명(= 대학에 머무는 평균 학생 수 = 5천명 x 4년)입니다.

3. Little’s Law의 간단한 예시

위의 식당과 대학의 예에서 보았듯이, 특정 공간 내에 머무는 사람 수는 들어오는 사람의 양(TPS)과 사람이 머무는 시간(Response Time)에 비례합니다.

하지만, 위의 예들을 통해서도 공식이 직관적으로 와닿지 않았다면, 아래와 같이 우리가 즐겨 마시는 커피의 예를 통해 이해도를 좀 더 높힌 후 다음으로 넘어가겠습니다.

Little's Law in Starbucks

Source: https://yorkesoftware.com

예시 3) 점심을 맛있게 먹고 커피를 마시기 위해 스타벅스 매장에 들어섰습니다. 카운터에는 나를 포함해 11명이 줄을 서고 있고, 점원이 1명당 주문을 받아 커피를 제공하는데까지 걸리는 시간이 1분이라면, 나는 몇분 뒤에 커피를 받을 수 있을까요?

답은, 11분입니다.

  • TPS(초당처리건수) = 1명 ÷ 60초 = 1/60TPS
  • 카운터별 대기 손님 수 = Number of Active Users = 11명
  • Average Response Time(평균응답시간) = 11명 ÷ (1/60)TPS = 660초 = 11분

4. 성능테스트에서의 계산 예시

위의 3가지 예시를 통해, Active User, Average Response Time, TPS간의 관계에 대해 기본적인 개념이 잡히기 시작하셨다면, 이제는 우리가 성능 테스트 설계 단계에서 실제 생각해 볼 수 있는 간단한 예시들을 추가적으로 다뤄 보도록 하겠습니다.

Little’s Law는 아래와 같이, 동시사용자(Concurrent Users)와 서비스 요청간격(Request Interval)이라는 개념으로 확장해서 공식을 활용할 수도 있습니다.

  • Concurrent Users = Active Users + Inactive Users
  • Request Interval = Average Response Time + Think Time
  • TPS = Concurrent Users ÷ Request Interval

Little's Law

위의 공식들을 활용하여 아래의 총 3개의 예시를 풀어보도록 하겠습니다. 이 과정을 통해, Little’s Law의 3가지 구성 요소에 대해 이해하고, 실무에 활용하시는데 조금이나마 도움이 되시길 바랍니다.(답은, 맨 아래에 있습니다.)

예시 4)

동시사용자(Concurrent Users) 60,000명이 60초마다 콘서트 예약가능 여부 확인을 위해 조회 버튼을 계속 클릭한다면, 이때의 TPS(Transaction Per Second)는 얼마일까요?

예시 5)

As-Is 시스템의 로그 확인 시 Peak 시점의 최대 TPS가 50인 시스템에서, 사용자의 업무 패턴을 조사한 결과 평균 100초 간격으로 입력작업을 수행하고 있으며 이때의 평균 응답시간이 5초로 확인되었다면, 이 시스템의 Peak 시점의 동시사용자 (Concurrent Users)수와 부하사용자(Active Users)수는 각각 몇명일까요?

예시 6)

PJT에서 고객과 성능 요구사항 인터뷰 시, 시스템을 사용하는 동시사용자(Concurrent Users)수는 5,000명이고, 업무 수행패턴 상 100초 간격으로 위치정보 조회 버튼을 클릭하는 것으로 조사되었으며, 조회 결과에 대한 평균응답시간은 3초여야 한다면, 이 시스템의 부하사용자(Active Users)수와 목표 TPS는 얼마가 되어야 할까요?

[답안 설명]

예시 4)

  • TPS = 동시사용자수 ÷ 서비스요청간격 = 60,000명 ÷ 60초 = 1,000TPS

예시 5)

  • 동시사용자수 = TPS x 서비스요청간격 = 50TPS x 100초 = 5,000명
  • 부하사용자수 = TPS x 평균응답시간 = 50TPS x 5초 = 250명

예시 6)

  • 부하사용자수 = 동시사용자수 x 평균응답시간 ÷ 서비스요청간격 = 5,000명 x 3초 ÷ 100초 = 150명
  • 목표 TPS = 동시사용자수 ÷ 서비스요청간격 = 5,000명 ÷ 100초 = 50TPS (또는, 목표 TPS = 부하사용자수 ÷ 평균응답시간 = 150명 ÷ 3초 = 50TPS)

[끝]