Search

2장. 개략적인 규모 추정

생성일
2025/07/26 13:33
태그

개요

개략적인 규모 추정(back-of-the-envelope estimation)은 보편적인 성능 수치상에서 사고 실험(thought experience)을 수행해 추정치를 계산하는 행위이다. 이를 요구사항에 어떤 설계가 부합할 것인지 알아볼 수 있다.

2의 제곱수

분산 시스템에서는 다루는 데이터 양이 엄청나게 커질 수 있으니, 데이터를 2의 제곱수로 표현하면 어떻게 되는지 알고 있어야한다.
데이터의 최소 단위는 1 byte이고, 8 bit로 구성된다. ASCII 문자 하나가 메모리에서 1바이트 크기만큼 차지한다.

응답지연 값

위 표는 2010년의 값으로 더 이상 유효하지 않지만, 이러한 일반적인 응답지연 값을 통해 컴퓨터들의 연산 처리 속도를 어느 정도인지 짐작할 수 있다.
위는 2020년 한 구글 엔지니어가 시각화한 응답지연 값 수치이다.
위 수치들을 통해 우리는 다음과 같은 사실을 알 수 있다.
메모리는 빠르고 디스크는 느리다. 디스크 탐색은 가능한 피하자.
단순 압축 알고리즘은 빠르다. 데이터를 인터넷으로 전송하기 전에 가능하면 압축하자.
데이터 센터는 여러 지역(region)에 분산되어 있고, 센터들 간에 데이터 주고 받는데 시간이 걸린다.

가용성에 관계된 수치들

고가용성(high availability)은 시스템이 오랜 시간 지속적으로 중단 없이 운영될 수 있는 능력을 지칭한다. 고가용성은 퍼센트로 표현하는데, 대부분의 서비스는 99%에서 100% 사이의 값을 갖는다.

예제: 트위터 QPS와 저장소 요구량 추정

가정

월간 능동 사용자(Monthly Active User)는 3억(300million) 명이다.
50%의 사용자가 트위터를 매일 사용한다.
평균적으로 각 사용자는 매일 2건의 트윗을 올린다.
미디어를 포함하는 트윗은 10% 정도다.
데이터는 5년간 보관된다.

추정

QPS (Query Per Second) 추정치
일간 능동 사용자(Daily Active User, DAU) = 3억 × 50% = 1.5억(150million)
QPS = 1.5억 × 2 트윗 / 24시간 / 3600초 = 약 3500
최대 QPS(Peak QPS) = 2 × QPS = 약 7000
미디어 저장을 위한 저장소 요구량
평균 트윗 크기
tweet_id에 64바이트
텍스트에 140바이트
미디어에 1MB
저장소 요구량 계산
미디어 저장소 요구량 = 1.5억 × 2 × 10% × 1MB = 30TB/일
5년간 미디어를 보관하기 위한 저장소 요구량: 30TB × 365 × 5 = 약 55PB

이러한 개략적인 규모 추정과 관계된 면접에서 가장 중요한건 문제를 풀어나가는 절차다. 이에 도움될 몇 가지 팁이 있다.
9986/9.1과 같은 계산에 집착하지말고, 10000/10과 같이 근사치를 활용해 간소화하여 계산하여 시간을 아끼자
가정(assumption)은 나중에 살펴볼 수 있게 적어두자.
단위(unit)를 붙여 모호함을 방지하자.
많이 출제되는 개략적 규모 추정 문제는 QPS, 최대 QPS, 저장소 요구량, 캐시 요구량, 서버 수 등을 추정하기이다.