🗂️ Etc

리틀의 법칙

loose 2024. 3. 18. 10:48
반응형

리틀의 법칙

리틀의 법칙은 어플리케이션을 설계할 때 확장성을 고려하기 위한 계산 방식으로도 쓰일 수 있습니다.

리틀의 법칙은 원래는 유입량과 확장에 대한 명시적인 해결책을 얻기 위해 널리 사용되는 법칙입니다.

 

공식

공간 내 머무는 객체 수(L) = 객체의 공간 유입량(λ) × 객체의 공간 내 머무는 시간(W)

 

고객이 시간당 10명의 비율로 도착하고 평균 0.5시간 동안 머문다고 가정합니다.

이는 언제든지 매장에 있는 평균 고객 수가 5명이 되어야 함을 의미합니다.

 

어플리케이션 설계에 접목 시키기

위의 간단한 공식을 통해 어플리케이션에 필요한 쓰레드를 계산해볼 수 있습니다.

동시에 처리할 수 있는 쓰레드(L) = 초당 클라이언트 요청량(λ) × 평균 요청 처리 시간(W)

 

그리고 우리는 시간 당이 아닌 초 당 유입량을 계산하는 것이 가장 바람직해보이니 그에 맞는 비율로 계산해줘야 합니다.

클라이언트 요청량이 초당 100건이고 평균 요청 처리 시간이 50ms일 경우 아래와 같은 계산 결과를 도출할 수 있습니다.

동시에 처리할 수 있는 쓰레드(5) = 초당 클라이언트 요청량(100) × 평균 요청 처리 시간(0.05)

Virtual Thread가 나오기 직전 Tomcat Thread 200개에 맞춰서 극단적으로 계산하면 아래와 같습니다.

서버에서의 처리는 빠르고 클라이언트의 유입량이 많은 경우

동시에 처리할 수 있는 쓰레드(200) = 초당 클라이언트 요청량(4000) × 평균 요청 처리 시간(0.05)
서버에서 처리가 느리고 클라이언트의 유입량이 적은 경우

동시에 처리할 수 있는 쓰레드(200) = 초당 클라이언트 요청량(20) × 평균 요청 처리 시간(5)

평균 요청 처리 시간이 5초만 되고 초당 20명씩 접근해도 하나의 어플리케이션이 일을 100% 하고 있다는 뜻이 됩니다.

728x90