시스템 설계 면접에서 시스템 용량이나 성능 요구사항을 개략적인 수치로 나타낼 수 있어야한다.
구글의 시니어 제프 딘은 다음과 같이 말했다.
개략적인 규모 추정은 보편적으로 통용되는 성능 수치상에서 사고실험을 행하여 추정치를 계산하는 행위로서, 어떤 설계가 요구사항에 부합할 것인지 보기 위한 것이다.
즉 개략적인 수치 계산을 통해 어떤 설계가 어울릴지 찾아내는 것이다. 수치 계산을 위해 규모 확장성을 표현하는 기본기에 대해 알려주는게 이번 챕터2다.
메모리는 빠르지만 디스크는 아직도 느리다.
디스크 탐색(seek)은 가능한 피하라.
단순한 압축 알고리즘은 빠르다.
데이터를 인터넷으로 전송하기 전에 가능하면 압축하라.
데이터 센터는 보통 여러 지역에 분산되어 있고, 센터들 간의 데이터를 주고받는 데는 시간이 걸린다.
고가용성(high availability)
가용률 | 하루당 장애시간 | 주당 장애시간 | 개월당 장애시간 | 연간 장애시간 |
---|---|---|---|---|
99% | 14.40분 | 1.68시간 | 7.31시간 | 3.65일 |
99.9% | 1.44분 | 10.08분 | 43.83분 | 8.77 |
99.99% | 8.64초 | 1.01분 | 4.38분 | 52.60분 |
99.999% | 864.000밀리초 | 6.05초 | 26.30초 | 5.26분 |
99.9999% | 86.40밀리초 | 604.80밀리초 | 2.63초 | 31.56초 |
QPS(Query per Second) 추정치는?
DAU = 3억 50% = 1.5억명
1.5억 2 / 86400 = 3472.2 == 3500
최대 qps는 2*QPS = 7000
미디어 저장을 위한 저장소 요구량은?
평균 트윗 크기
- id : 64바이트
- text : 140바이트
- 미디어어: 1MB
3억건 0.9200바이트 + 3억건0.11mb(30TB/일)
5년간 미디어를 보관하기 위한 저장소 요구량 = 30TB 365 5 = 약 55PB