[대규모 시스템 설계 기초] 2장. 개략적인 규모 추정

박상준·2024년 6월 2일
0

개략적인 규모 추정

  • 시스템 설계 면접상에 때떄로 시스템의 용량이나 성능 요구사항을 대략적으로 추정해보라는 요구를 받는다.

“ 개략적인 규모 추정(back-of-the-envelope setimation)” 은

보편적으로 통용되는 성능 수치상에서 사고 실험을 통해 추정치를 계산하는 행위.. 라고 한다. 특정 설계가 요구사항에 부합하는지를 확인하는 위한 것이라고 한다

“제프 딘”

개략적인 규모 추정의 중요성

개략적 규모 추정을 위해 다음과 같은 기본기와 지식이 필요하다.

  • 2의 제곱수
  • 응답 지연 값
  • 가용성

2의 제곱수

  • 분산 시스템에서 다루는 데이터 양은 많을 수 있지만, 계산하는 방법은 단순함.
    • 1바이트는 8 비트

    • 흔히 사용되는 데이터의 볼륨 단위는 2의 제곱수로 표현됨

      2의 x 제곱근사치이름축약형
      101천킬로바이트KB
      201백만메가바이트MB
      3010억기가바이트GB
      401조테라바이트TB
      501000조페타바이트PB

응답 지연 값

  • 제프 딘 ( 구글 시니어 펠로 ) 는 2010년에 다음과 같은 통상 응답 지연 값을 공개함
    L1 캐시 참조0.5ns
    분기 예측 오류5ns
    L2 캐시 참조7ns
    뮤텍스 락/언락100ns
    주 메모리 참조100ns
    1 KB 압축(Zippy)10,000ns = 10µs
    1 Gbps 네트워크로 2 KB 전송20,000ns = 20µs
    메모리에서 1 MB 순차적으로 읽기250,000ns = 250µs
    같은 데이터 센터 내에서 메시지 왕복 지연시간500,000ns = 500µs
    디스크 탐색10,000,000ns = 10ms
    네트워크에서 1 MB 순차적으로 읽기10,000,000ns = 10ms
    디스크에서 1 MB 순차적으로 읽기30,000,000ns = 30ms
    CA에서 네덜란드까지의 패킷 왕복 지연시간150,000,000ns = 150ms

  • 메모리는 빠르지만 디스크는 느리다.
    • 디스크 탐색을 피하라.
  • 데이터 압축이 중요하다.
  • 데이터 센터간의 지연 시간을 고려해야한다.

고가용성(High Availability) 및 관련 수치

고가용성?

  • 시스템이 오랜 시가 동안 지속적으로 중단 없이 운영될 수 있는 능력을 말한다.
  • 고가용성은 보통 % 로 표현
  • 대부분의 서비스는 99 % ~ 100 % 사이의 가용성을 목표로 한다.

SLA(Service Level Agreement)

  • 서비스 사업자와 고객 사이에 맺어진 합의이다.
  • 서비스의 가용시간(uptime) 이 명시되어 있다.
가용률하루당 장애시간주당 장애시간월간 장애시간연간 장애시간
99%14.40분1.68시간7.31시간3.65일
99.9%99.9%99.9%99.9%99.9%
99.99%8.64초1.01분4.38분52.60분
99.999%864.00밀리초6.05초26.30초5.26분
99.9999%86.40밀리초604.80밀리초2.63초31.56초

예시 : QPS 와 저장소 요구량 추정

  • 가정
    • 월간 능동 사용자 : 3억 명
    • 50 % 의 사용자가 매일 사용한다.
    • 평균적으로 각 사용자는 매일 2건의 트윗을 올린다.
    • 미디어를 포함하는 트윗 비율 : 10%
    • 데이터 보관 기간 : 5년
  • QPS(Query Per Second) 추정
    • 일간 능동 사용자(DAU) : 3억 * 50 % = 1.5억명
    • QPS : 1.5억 * 2 트윗 / 24시간 / 3600초 ≈ 3500
    • 최대 QPS(Peak QPS) : 2 * QPS ≈ 7000
  • 미디어 저장을 위한 저장소 요구량
    • 평균 트윗의 크기
      • tweet_id ; 64 바이트
      • 텍스트 ; 140바이트
      • 미디어 ; 1MB
    • 미디어 저장소의 요구량 : 1.5 억 2 10% * 1MB = 30TB/일
    • 5년간 미디어 저장소 요구량
      • 30 TB 365 5 = 55PB

시스템 설계 면접에서의 질문

  • 시스템 설계 면접에서는 요구사항을 정화갛게 이해하기 위해 필요한 질문을 하는 것이 중요하다고 한다.
  • 면접관이 답변을 바로 주지 않는 경우, 스스로 가정으로 하고 이를 기록해야함.

면접시 질문 예시

  1. 구체적 기능

    어떤 기능들을 만들어야 하나요?

  2. 사용자 수

    제품 사용자 수는 얼마가 되나요?

  3. 성장 속도

    회사의 규모는 얼마나 빨리 커질 것이라 예상?

    3, 6 달 후 혹은 1년 후의 규모는 어떻게 되나요?

  4. 기술 스택

    회사가 주로 사용하는 기술 스택은?

    설계를 단순화하기 위해 활용할 수 있는 기존 서비스는 어떤 것이 있나?

profile
이전 블로그 : https://oth3410.tistory.com/

0개의 댓글