DESIGN PATTERN & ARCHITECTURE

가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 2장) 개략적인 규모 추정

dodop 2024. 10. 21. 23:14

 

 

 

개략적인 규모 추정 

  • 어떤 설계가 시스템의 요구 사항에 부합하는지 보기 위한 지표로 성능 추정에 사용됨 

 

 

2의 제곱수 

  • 데이터 볼륨의 단위를 2의 제곱수로 표현
    • 최소 단위 = 1바이트 = 8비트 = ASCII문자 하나가 차지하는 메모리 크기
      • UTF-8의 경우 1~4바이트 
2의 제곱수  근사치  이름  축약형 
10 1천  1킬로바이트 1KB
20 1백만  1메가바이트 1MB
30 10억 1기가바이트 1GB
40 1조 1테라바이트 1TB
50 1000조 1페타바이트 1PB

 

 

응답 지연 값 

연산명 시간 
L1 캐시 참조  0.5ns
분기 예측 오류 (branch mispredict)  5ns
L2 캐시 참조  7ns
뮤텍스 락 / 언락  100ns
주 메모리 참조  100ns
Zippy로 1KB 압축  10000ns = 10us
1Gbps 네트워크로 2KB 전송  20000ns = 20us
메모리에서 1MB 순차적으로 read  250000ns = 250us
같은 데이터 센터 내에서의 메세지 왕복 지연 시간  500000ns = 500us
디스크 탐색 (seek) 10000000ns = 10ms
네트워크에서 1MB 순차적으로 read 10000000ns = 10ms
디스크에서 1MB 순차적으로 read 30000000ns = 30ms
한 패킷의 CA(캘리포니아)로부터 네덜란드까지의 왕복 지연 시간  150000000ns = 150ms
  • 메모리는 빠르지만 디스크는 느림 
  • 디스크 탐색은 가능한 피할 것 
  • 단순한 압축 알고리즘은 빠름 
  • 데이터를 인터넷으로 전송하기 전에 가능하면 압축할 것 
  • 데이터 센터는 보통 여러 지역에 분산 되어 있고 센터들 간에 데이터를 주고받는 데는 시간이 소요됨 

 

 

 

가용성에 관계된 수치들 

  • 고가용성 (%) 
    • 시스템이 오랜 시간 동안 지속적으로 중단 없이 운영될 수 있는 능력 
    • 대부분의 서비스는 99% ~ 100% 사이의 값을 가짐 
    • SLA = Service Level Agreement 
      • 아마존, 구글, 마이크로소프트 같은 사업자는 99% 이상의 SLA 제공 
      • 9가 많을 수록 좋음 
가용률 하루당 장애시간  주당 장애시간 개월당 장애시간 연간 장애시간
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.00 밀리초 6.05초 26.30초 5.26분
99.9999% 86.40밀리초 604.80밀리초 2.63초 31.56초

 

 

 

 

예제 ) 트위터 QPS와 저장소 요구량 측정 

  • 가정 
    • 월간 능동 사용자 (MAU) = 3억명 
    • 50% 사용자가 트위터를 매일 사용 
    • 각 사용자는 평균적으로 매일 2건의 트윗을 게시
    • 미디어를 포함하는 트윗은 10% 정도 
    • 데이터는 5년간 보관됨 
  • 추정 
    • QPS (Query Per Second) 
      • 일간 능동 사용자 = 3억 x 50% = 1.5억명 
      • QPS = 1.5억 x 2트윗 / 24시간 / 3600초 = 약 3500 
      • 최대 QPS(Peek QPS) = 2 x QPS = 약 7000
    • 미디어 저장을 위한 저장소 요구량 
      • 평균 트윗 크기 
        • tweet_id = 64bytes
        • 텍스트 = 140bytes
        • 미디어 = 1MB 
      • 미디어 저장소 요구량 
        • 1.5억 x 2 x 10% x 1MB = 30TB / 일 
      • 5년간 미디어 보관을 위한 저장소 요구량 
        • 30TB x 365 x 5 = 약 55PB

 

팁 

  • 올바른 절차를 밟느냐가 결과를 내는 것보다 중요 
    • 문제 해결 능력 
  • 근사치를 활용하여 계산 시간을 줄일 것 
  • 가정들은 적어둘 것 
    • 나중에 도움을 받기 위해 
  • 단위를 붙일 것 
  • 개략적 규모 추정 문제는 QPS, 저장소 요구량, 캐시 요구량, 서버 수 등을 측정하는 것