어흥
[대규모 시스템 설계] 2. 개략적인 규모 추정 본문
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% 사이의 값을 가진다
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, 저장소 요구량, 캐시 요구량, 서버 수
출처: 가상 면접 사례로 배우는 대규모 시스템 설계 기초
'개발 > 대규모 시스템 설계' 카테고리의 다른 글
[대규모 시스템 설계] 6. 키-값 저장소 설계 - 1 (0) | 2023.08.16 |
---|---|
[대규모 시스템 설계] 5. 안정 해시 설계 (0) | 2023.08.14 |
[대규모 시스템 설계] 4. 처리율 제한 장치의 설계 - 2 (0) | 2023.08.08 |
[대규모 시스템 설계] 4. 처리율 제한 장치의 설계 - 1 (0) | 2023.08.02 |
[대규모 시스템 설계] 3. 시스템 설계 면접 공략법 (0) | 2023.07.31 |