어흥

[대규모 시스템 설계] 2. 개략적인 규모 추정 본문

개발/대규모 시스템 설계

[대규모 시스템 설계] 2. 개략적인 규모 추정

라이언납시오 2023. 7. 31. 16:20
728x90
반응형

1. 개략적인 규모 추정을 하는 이유?

  • 보편적으로 통용되는 성능 수치상에서 사고 실험을(thought experiments) 행하여 추정치를 계산하는 행위
  • 어떤 설계가 요구사항에 부합할 것인지 보기 위함

2. 규모 확장성에 필요한 기본기

(1) 2의 제곱수

최소 단위: 1Byte = 8Bit

데이터 볼륩 단위 표

(2) 응답지연 값

응답지연 값

ns = nanosecond, µs = microsecond, ms = milisecond

1ms = 1,000µs = 1,000,000ns

눈으로 보는 비교

위 표를 통해 얻을 수 있는 점

- 메모리는 빠르지만 디스크는 아직 느리다

- 디스크 탐색은 피하자

- 단순한 압축 알고리즘은 빠르다

(3) 가용성에 관계된 수치

고가용성이란 시스템이 오랜 시간 동안 지속적으로 중단 없이 운영될 수 있는 능력으로, %로 표현한다. 대부분의 서비스는 99~100% 사이의 값을 가진다

9와 시스템 장애시간의 관계

3. QPS와 저장소 요구량 추정

트위터 QPS로 가정하고 수치는 임의로 수정해서 진행

월간 능동 사용자(monthly active user)는 5억명이다
50%의 사용자가 트위터를 매일 사용한다
평균적으로 각 사용자는 매일 3건의 트윗을 올린다
미디어를 표현하는 트윗은 20% 정도다
데이터는 4년간 보관된다

추정
QPS(Query Per Second) 추정치
- 일간 능동 사용자(Daily Active User, DAU) = 5억 * 50% = 2.5억
- QPS = 2.5억 * 3트윗 / 24시간 / 3600초 = 약 8680
- 최대 QPS(Peek QPS) = 2*QPS = 약 17360 (그런데 여기서 2를 곱하는 이유가 응답 시간과 동시에 진행중인 요청의 개수를 고려하기 위함이라는데 이해가 잘 가지 않는다..)


미디어 저장을 위한 저장소 요구량
1. 평균 트윗 크기

- tweet_id : 64byte

- text: 140byte

- media: 1MB

2. 미디어 저장소 요구량: 2.5억(명) * 3(트윗) * 20%(미디어 표현 트윗) * 1MB = 150TB/일

3. 4년간 미디어를 보관하기 위한 저장소 요구량: 150TB/일 * 365 * 4 = 약 219PB

 

4. Tip

올바른 절차를 밟느냐가 결과보다 중요하다

1. 근사치를 활용하여 계산하라

2. 가정들은(Assumption) 나중에 살펴볼 수 있도록 적어둔다

3. 단위를 붙여라

4. 많이 출제되는 유형: QPS, 최대 QPS, 저장소 요구량, 캐시 요구량, 서버 수

 

 

 

출처: 가상 면접 사례로 배우는 대규모 시스템 설계 기초

728x90
반응형
Comments