대규모 시스템 설계 기초 책 정리하기 : 2 개략적인 규모 추정

laply park·2024년 12월 19일
0
post-thumbnail

대규모 시스템 설계 기초 책 정리하기 : 2부 개략적인 규모 추정

업로드중..

읽을때 마다 새로운 지식을 알게되는 책이지만, 다음 챕터로 넘어 갈수록 너무 어려워져서 손이가지 않는 책으로 최대한 많이 이해하고 완독을 목표로 정리를 하기위해서 글을 작성하게 되었다.

처음에는 2부 부터 읽다가 왜 1을 읽지 않느냐는 질문을 받고 1부를 읽게되었고 1부 부터 읽는게 필수라고 할정도로 난이도 차이가 있다.

잘근잘근 씹어먹듯, 많은 지식을 남길 수 있도록 열심히 정리해보자!

가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 예스24

개략적인 규모 추정

시스템 설계 면접을 볼때 시스템용량이나, 성능 요구사항을 개략적으로 추정해 보라는 요구를 받게 된다. 이를 위해 규모 확장 성을 표현하는데 필요한 기본기에 능숙해야한다.

2의 제곱수

제대로된 계산 결과를 얻으려면, 데이터 볼륨의 단위를 2의 제곱수로 표현하면 어떻게 되는지를 우선 알아야 한다.

최소 단위는 1 Byte 이고 1 Bit 로 구성된다. (ASCII 문자 하나가 차지하는 메모리크기와 동일)

2^x근사치이름축약
101천1 Kilobyte1KB
201백만1 Megabyte1MB
3010억1 Gigabyte1GB
401조1 Terabyte1TB
501000조1 Petabyte1PB

응답 지연값

제프 딘 이 정리한 컴퓨터의 연산 들의 응답 지연 값이다.
https://highscalability.com/google-pro-tip-use-back-of-the-envelope-calculations-to-choo/

해당 수치들을 분석하면 다음과 같다.

  • 메모리는 빠르지만, 디스크는 아직도 느리다. 디스크 탐색은 가능한 피해라
  • 단순한 압축 알고리즘은 빠르다. 데이터를 인터넷으로 전송하기전에 가능하면 압축해랴
  • 데이터 센터는 보통 여러지역에 분산되어있고, 센터들 사이에서 데이터전송에는 시간이 걸린다.

가용성에 관계 된 수치들

고가용성 은 시스템이 오랜시간 동안 지속적으로 중단 없이 운영될 수 있는 능력을 지칭하는 용어다. 가용성은 100%는 시스템이 단 한번도 중단된 적이 없었음을 나타낸다.

가용률하루당 장애 시간연간 장애시간
99%14.40 분3.65 일
99.9%1.44 분8.77 시간
99.99%8.65 초52.60 분

예제 : 트위터 QPS 와 저장소 요구랑 추정

  • QPS (Query Per Second)

가정

  • 월간 능동 사용자는 3억명이다.
  • 50% 의 사용자가 트위터를 매일 사용한다.
  • 평균적으로 각 사용자는 2건의 트윗을 올린다.
  • 미디어를 포함하는 트윗은 10% 이다.
  • 데이터는 5년간 보간된다.

추정
1. QPS 추정치
일간 능동사용자 300m0.5=150m300m*0.5 = 150m
QPS=150m2/24/3600=3500QPS = 150m*2/24/3600=3500
최대QPS=2QPS7000최대 QPS = 2*QPS ≈ 7000

  1. 미디어 저장을 위한 저장소 요구량
    평균 트윗크기
    tweet-id : 64 Byte
    text : 140 Byte
    media : 1 MegaByte
    미디어 저장소 요구량
    150m2(0.11MB)=30TB/D150m*2*(0.1*1MB) = 30TB/D
    5Y=30TB365555PB5Y = 30TB*365*5 ≈ 55PB

마무리

  • 적절한 근사치를 이용하고, 가정을 적어두어라
  • 단위를 붙혀 데이터 값을 정확하게 기록하라
  • 개략적 규모 추정문제는 QPS / 최대 QPS / 저장소 요구량 / 캐시 요구량 / 서버 수 등 을 추정하는 것이 많이 나온다.
profile
선한 의지를 기반으로 많은 사람에게 행복을 전해줄 수 있는 사람이 되기를 꿈꿉니다.

0개의 댓글