2장. 개략적인 규모 추정

1. 2의 제곱수

데이터 볼륨의 단위

  • 어떻게 2의 제곱수로 표현?
  • 최소단위 1바이트(8비트)
  • ASCII 문자: 1바이트 차지

흔히 쓰이는 단위

  • 2^10 := 1천(thousand) = 1Kilobyte = 1KB
  • 2^20 := 1백만(million) = 1Megabyte = 1MB
  • 2^30 := 10억(billion) = 1Gigabyte = 1GB
  • 2^40 := 1조(trillion) = 1Terabyte = 1TB
  • 2^50 := 1000조(quadrillion) = 1Petabyte = 1PB

2. 모든 프로그래머가 알아야 하는 응답지연 값

  • 메모리는 빠르지만 디스크는 느림
  • 디스크 탐색(seek)은 가능한 한 피할 것
  • 단순한 압축 알고리즘은 빠름
  • 데이터를 인터넷으로 전송하기 전에 가능하면 압축할 것
  • 데이터센터는 보통 여러 region에 분산되어 있고, 센터들 간에 데이터를 주고받는 데는 시간이 걸림

3. 가용성에 관계된 수치들

고가용성 high availability

  • 오랜 시간동안 지속적으로 중단없이 운영될 수 있는 능력
  • percent로 표현: 100% = 단 한 번도 시스템이 중단된 적 없음을 의미

SLA

  • Service Level Agreement
  • 서비스 provider와 고객 사이에 맺어진 합의를 의미
  • 해당 합의에는 서비스 provider가 제공하는 서비스의 가용시간uptime 이 공식적으로 기술됨.
  • 가용시간은 관습적으로 9를 사용해 표시 → 9가 많을수록 좋음 (99.99999%)

4. 예제 : 트위터 QPS와 저장소 요구량 추정

가정

  • monthly active user는 3억명
  • 50%의 user가 트위터를 매일 사용
  • 평균적으로 각 사용자는 매일 2건의 트윗을 게시
  • 미디어를 포함하는 트윗은 10%
  • 데이터는 5년간 보관

추정

  • QPS(Query Per Second) 추정치
    • Daily Active User (DAU) = 3억 x 50% = 1.5억
    • QPS = 1.5억 x 2트윗 / 24시간 / 3600초 := 3500
    • 최대 QPS(Peek QPS) = 2 x QPS := 7000
  • 미디어 저장을 위한 저장소 요구량
    • 평균 트윗 크기: twee_id 64byte, text 140byte, media 1MB
    • 미디어 저장소 요구량 = 1.5억 x 2 x 10% x 1MB = 30TB/일
  • 5년간 미디어를 보관하기 위한 저장소 요구량
    • 30TB x 365 x 5 := 55PB

5. 팁

  • 근사치를 활용한 계산
    • rounding and approximation
    • 계산 결과의 정확함을 평가하는 목적 X
    • 적절한 근사치 활용해서 시간 절약
  • 가정(assumption) 메모하기
  • 단위(unit) 붙이기
profile
숭실대학교 컴퓨터학부 21

0개의 댓글