2016년 9월 30일 금요일

Couchbase ( 시스템 산정 가이드 )

  1. 목적 

    1.  Couchbase 초기 세팅 시 플랫폼을 산정하기 위한 검토자료로 사용합니다. 

  2. CPU

    1. Couchbase   코어의 Clock Speed 보다 Multi Core 환경에  유용합니다. ( Multi-threaded Process 환경
    2. 물리적으로 노드  최소 CPU 4~8 Core  권고하며추가 확장 필요  Scale-Out 방식으로 노드를 추가한  Rebalancing 하는 것을 권고 합니다
    3. 기본 최소 4 Core 에
      Bucket 하나를 추가  경우  + CPU Core 1 추가,
      Design Document 추가     + CPU Core 1 추가 권장합니다.  
      1. 3개 Bucket 과 1 Design Document 를 사용시 ( 4 Core +  3 Core(3Buket) + 1 Core(1 Design Document) ) = 8 Core 권장 
    4. 원격 복제 XDCR  Views  사용할 경우 최소 CPU 6 Core 이상을 권장합니다.
  3. 메모리 산정 

    1. Memory Quota 산정
      • 목적 : Memory Quota 산정을 통해 필요 Node 개수를 확보하기 위함입니다.  

    2. 산정 대상 Variable 
      Variable
      Description
      Documents Count
      Working Set 으로 예상되는 Document    
      ID Size
      Documents ID  평균 Size ( Key )
      Value Size
      Value  평균 Size
      Number of Replicas
      복제(Replica)   
      Working Set Percentage
      Memory  상주하여 Data  사용할 percnetage
      Ram Quota Per Node
      노드당 Couchbase  위해 할당할 Ram Quota
      OS  특정 APP  사용할 최소 2GB  RAM 이상의 여유분을 제외하고 Quota   잡는 것을 권고 
      MetaData Per Document
      MetaData  Document  60 Byte 고정 (반드시 메모리에 상주)
      Headroom
      일종의 Metadata  위한 보정치
      SSD  사용하면 Memory  25% ,  Hard Disk 사용  Memory  30%
      High Water Mark
      Couchbase 에서 설정하는 RAM  High Water Mark
      Default  Node RAM  85%  설정 

    3. 산정 공식
       
      Variable
      Description
      Detail
      No_of_copies 
      1 +  Replica  
      원본 노드와 Replica  
      Total_metadata
      (Documents Count) * ( Metadata per Document + ID Size ) * (No_of_copies)
      Document Count  최대 증가 예상 수를 추측
      Total_Dataset
      (Documents Count) * ( Value Size ) * ( No_of_copies )
      Document Count  최대 증가 예상 수를 추측
      Working_Set
      Total_dataset * ( Working_set_percentage )
      메모리에 상주시킬 평균 Working Set 크기
      Cluster RAM quota Required
      (Total_metadata + Working_set ) * ( 1 + headroom) / ( high water mark)
      Cluster 에서 사용될  RAM 필요 크기
      Number of Nodes
      Cluster RAM quota required / RAM quota per node
      Cluster 구성에 필요한 노드 
      RAM quota per node  Physical Memory - 2GB 권고


    4. 산정 공식 예시 (Input Variable)
      Input Variable
      Sample Value
      Document Count
      1,000,000 Row
      ID Size
      100 Byte
      Value Size
      10,000 Bye
      Number of Replicas
      1
      Working Set Percentage
      20 %
      Type Of Storage
       -- Overhead Percentage
      IF(HDD)THEN
      30% 
      Metadata Per Document
      60 Byte
      High Water Mark
      85 %
      RAM quota per node
      6 GB ( Physical Mem 8GB 

    5. 산정 공식 대입 예시(Calculation)
      variable
      Calculation
      Detail
      No_of_copies
      1 + 1
      원본 노드와 Replica 수의 
      Total_metaData
      1,000,000 * ( 60 + 100) *  (2) = 320,000,000 Byte
      1,000,000 Row  필요한 MetaData 크기 (반드시 RAM  상주)
      Total_Dataset
      1,000,000 * (10,000) * (2) =
      20,000,000,000  Byte
      Key  제외한  Data  크기
      Working_Set
      20,000,000,000 * (0.2) =
      4,000,000,000 Byte
      Working Set 으로 활용될 Memory  크기
      Cluster RAM Quota Required
      ( 320,000,000 +4,000,000,000) * ( 1+ 0.30 ) / (0.8) =
      7,020,000,000 Byte ( 6.6 GB)
       필요한 RAM  크기
      Number of Nodes
      6.6 GB / 6GB = 1.1 Node Or 2 Node
      Cluster 구성에 필요한 노드의 수는
      ( Cluster RAM Quota Required /노드당 Quota )

  4. Disk Throughput and sizing 

    1. Size
      • Key-Value Data Only : Disk  사이즈는 Key-value data 만을 유지하는 기준으로 저장될 모든 Dataset  size  2~3배를 권고합니다.
      • View 사용 : View  사용될 경우 View  실제 데이터를 저장하여 Indexing 으로 사용하기 때문에 View  개수에 따라 적절히 추가 산정해야 합니다.
    2. Throughpu
      1. Couchbase  데이터 영속성을 위해 Disk  Key-value  저장하게 되므로, Disk I/O  중요합니다
      2. Couchbase Server  Install 영역과 Data, Index(View) 영역을 물리적인 Disk 분할 함으로서 I/O 분산 효과로 성능이 향상됩니다.

        분류
        물리적 분할
        Mount
        Engine
        /dev/sda1
        /opt/couchbase
        Data
        /dev/sdb
        /data
        Index
        /dev/sdc
        /index

      3. RAID 구성은 필요조건은 아니나 RAID 0 or 10 을 권장합니다. 

  5. Network Bandwidth 

    1. 최소 1 Gig Bit 대역의 Network 으로 구성하는 것이 좋으며, Low latency  중요한 환경일 경우 10 Gig Bit 대역도 성능 향상에 도움이 됩니다.
  6. Couchbase Version

    1. 현재 Community Edition의 최신 버전을 사용할 것을 권장 
  7. 권장 SPEC 요약

    항목
    권장 SPEC
    CPU
    8 Core
    RAM(Physical)
    최소 16GB ~ 32GB ( 추가 확장 필요시 Scale-Out 으로 확장)
    Disk
    HDD Disk ( Data/Index 물리적 분활) , 예상 저장 DataSet 의 3배 권장
    Network
    1 Gig Bit Bandwidth
    Couchbase Version
    Community Edition 최신 버전 


댓글 없음:

댓글 쓰기