Sign In

개략적인 규모 추정

개략적인 규모 추정은
보편적으로 통용되는 성능 수치상에서 사고 실험을 행하여 추정치를 계산하는 행위
어떤 설계가 요구사항에 부합할 것인지 보기 위한 것
개략적인 규모 추정을 효과적으로 하려면
규모 확장성을 표현하는데 익숙해야 함
특히 2의 제곱수나 응답지연값, 그리고 고가용성(HA)에 관계된 수치들을 알아야함
1 바이트 = 8 비트 = ASCII 문자 하나
모든 프로그래머가 알아야 하는 응답지연 값 (2020)
메모리는 빠르지만 디스크는 아직도 느리다.
디스크 탐색은 가능한 피하자 (SSD: 16{\mu s}, Disk: 2ms)
단순 압축 알고리즘은 빠르다 (2{\mu s})
데이터를 인터넷으로 전송하기 전에 가능하면 압축하라
데이터 센터는 보통 여러 지역에 분산되어 있어, 센터들 간에 데이터를 주고받는 데 시간이 걸린다.
⇒ 멀티 리전 데이터베이스의 일관성 문제는 불가피함
고가용성(high availability, HA)
시스템이 오랜 시간동안 지속적으로 중단 없이 운영될 수 있는 능력
SLA(Service Level Agreement) : 서비스 사업자와 고객 사이에 맺어진 합의
가용률 99.99% : 전체 시간의 0.01% 미만, 즉 하루 최대 8.64초까지의 다운타임은 허용

규모 추정 문제

문제 1: 유튜브

유튜브는 매일 얼마만큼의 저장 용량을 필요로 할까요? (Estimate YouTube’s daily video storage requirements)
가정
일일 사용자는 10억 명이고 그 중 1/1000의 사람이 동영상을 올린다.
동영상은 평균 10분 길이이다.
2시간짜리 동영상의 최대 크기는 2GB이다.
동영상의 해상도별 용량은 1, 1/2, 1/4, 1/8, … 이다.
추정
일일 총 동영상 길이 : \frac{10^9}{1000} \times 10 = 10^7
일일 총 동영상 용량 : 10^7 \times \frac {2GB}{2 \times 60} \approx 160\;TB
해상도를 고려한 일일 총 용량 : 160\;TB \times ( 1 + \frac{1}{2} + \frac{1}{4} + \frac{1}{8} + \frac{1}{16}) \approx 160\;TB \times 2 = 0.32\;PB
발전
동영상 용량 = 사진 한 장 용량 x 영상 길이 x 분당 프레임
실제 유튜브에 업로드되는 동영상 길이는 분당 600시간임
우리의 계산값은 분당 115시간으로 근접함

참고 자료

2.
Capacity Planning and Estimation: How much data does YouTube store daily? - https://youtu.be/0myM0k1mjZw