📚 Study
[System Design] 2. 개략적인 규모 추정
Alex Zu, <System Design Interview(가상 면접 사례로 배우는 대규모 시스템 설계 기초)>를 읽고 정리한 글입니다.
목차
2의 제곱수2^10 곱할 때마다 1000씩 곱해진다 : 1천 → 1백만 → 10억 → 1조 → 1000조응답지연 값응답지연값으로 컴퓨터 연산의 처리 속도를 알 수 있다.가용성 수치대부분의 서비스는 99%에서 100% 사이의 가용률을 가진다.9의 개수와 시스템 장애 시간(downtime) 사이의 관계예제 : 트위터 QPS와 저장소 요구량 추정해보기가정QPS(Query Per Second) 추정미디어 저장을 위한 저장소 요구량 추정팁근사치를 활용하여 계산하라.가정을 적어 두고, 나중에 다시 살펴볼 수 있도록 하라.헷갈리지 않도록 단위(unit)를 붙이는 습관을 들여라.많이 출제되는 개략적 규모 추정 문제
2의 제곱수
2^10 곱할 때마다 1000씩 곱해진다 : 1천 → 1백만 → 10억 → 1조 → 1000조
최소단위 = 1바이트 = 8비트 = ASCII 문자 하나의 메모리 크기
2의 x제곱 | 근사치 | 이름 | 축약형 |
10 | 1천 = 1k | 1킬로바이트 | 1KB |
20 | 1백만 = million | 1메가바이트 | 1MB |
30 | 10억 = billion | 1기가바이트 | 1GB |
40 | 1조 = trillion | 1테라바이트 | 1TB |
50 | 1000조 = quadrillion | 1페타바이트 | 1PM |
응답지연 값
응답지연값으로 컴퓨터 연산의 처리 속도를 알 수 있다.
수치들을 분석하면 다음과 같은 결론이 나온다.
- 메모리는 빠르지만 디스크는 아직도 느리다
- 디스크 탐색(seek)은 가능한 한 피하라.
- 단순한 압축 알고리즘은 빠르다.
- 데이터를 인터넷으로 전송하기 전에 가능하면 압축하라.
- 데이터 센터는 보통 여러 지역에 분산되어 있고, 센터들 간에 데이터를 주고받는 데는 시간이 걸린다. 따라서 센터들 간의 데이터 전송비용은 비싸다.
가용성 수치
대부분의 서비스는 99%에서 100% 사이의 가용률을 가진다.
고가용성(high availability)은 시스템이 오랜 시간 동안 지속적으로 중단 없이 운영될 수 있는 능력을 지칭하는 용어다. 고가용성을 표현하는 값은 퍼센트로 표현한다. 100%는 시스템이 단 한 번도 중단된 적이 없었음을 의미한다. 대부분의 서비스는 99%에서 100% 사이의 값을 갖는다.
9의 개수와 시스템 장애 시간(downtime) 사이의 관계
예제 : 트위터 QPS와 저장소 요구량 추정해보기
가정
- 월간 능동 사용자(monthly active user)는 3억(300million)명이다.
- 50%의 사용자가 트위터를 매일 사용한다.
- 평균적으로 각 사용자는 매일 2건의 트윗을 올린다.
- 미디어를 포함하는 트윗은 10% 정도다.
- 데이터는 5년간 보관된다.
QPS(Query Per Second) 추정
- 일간 능동 사용자(Daily Active User, DAU) = 3억 % 50% = 1.5억(150milion)
- QPS = 1.5억 * 2트윗 / 24시간 / 3600초 = 약 3500개
- 최대 QPS(Peek QPS) = 2 * QPS = 약 7000개
미디어 저장을 위한 저장소 요구량 추정
- 평균 트윗 크기
- tweet_id 에 64바이트
- 텍스트에 140바이트
- 미디어에 1MB
- 미디어 저장소 요구량 = 1.5억 * 2 * 10% * 1MB = 30TB
- 5년간 미디어를 보관하기 위한 저장소 요구량 = 30TB * 365 * 5 = 약 55PB
팁
개략적인 규모 추정과 관계된 면접에서 가장 중요한 것은 문제를 풀어 나가는 절차다. 올바른 절차를 밟느냐가 결과를 내는 것보다 중요하다.
근사치를 활용하여 계산하라.
계산 결과의 정확함을 평가하려는 것이 아니므로, 적절한 근사치를 활용하여 시간을 절약하자.
99,987/9.1 ≈ 100,000/10 으로 근사할 수 있다.
가정을 적어 두고, 나중에 다시 살펴볼 수 있도록 하라.
헷갈리지 않도록 단위(unit)를 붙이는 습관을 들여라.
많이 출제되는 개략적 규모 추정 문제
QPS, 최대 QPS, 저장소 요구량, 캐시 요구량, 서버 수 추정 등