ABOUT ME

🥨 Studying programming 🌼

Today
Yesterday
Total
  • 가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 2장) 개략적인 규모 추정
    DESIGN PATTERN & ARCHITECTURE 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, 저장소 요구량, 캐시 요구량, 서버 수 등을 측정하는 것 
Designed by Tistory.