목적
- Couchbase 초기 세팅 시 플랫폼을 산정하기 위한 검토자료로 사용합니다.
- Couchbase 초기 세팅 시 플랫폼을 산정하기 위한 검토자료로 사용합니다.
CPU
- Couchbase 는 각 코어의 Clock Speed 보다 Multi Core 환경에 더 유용합니다. ( Multi-threaded Process 환경)
- 물리적으로 노드 당 최소 CPU 4~8 Core 를 권고하며, 추가 확장 필요 시 Scale-Out 방식으로 노드를 추가한 후 Rebalancing 하는 것을 권고 합니다.
- 기본 최소 4 Core 에
Bucket 하나를 추가 할 경우 + CPU Core 1개 추가,
Design Document 추가 시 + CPU Core 1개 추가 권장합니다.- 3개 Bucket 과 1 Design Document 를 사용시 ( 4 Core + 3 Core(3Buket) + 1 Core(1 Design Document) ) = 8 Core 권장
- 원격 복제 XDCR 와 Views 를 사용할 경우 최소 CPU 6 Core 이상을 권장합니다.
메모리 산정
- Memory Quota 산정
- 목적 : Memory Quota 산정을 통해 필요 Node 개수를 확보하기 위함입니다.
- 산정 대상 VariableVariableDescriptionDocuments CountWorking Set 으로 예상되는 Document 의 총 수ID SizeDocuments ID 의 평균 Size ( Key )Value SizeValue 의 평균 SizeNumber of Replicas복제(Replica) 의 수Working Set PercentageMemory 에 상주하여 Data 를 사용할 percnetageRam Quota Per Node노드당 Couchbase 를 위해 할당할 Ram Quota
OS 와 특정 APP 가 사용할 최소 2GB 의 RAM 이상의 여유분을 제외하고 Quota 를 잡는 것을 권고MetaData Per DocumentMetaData 는 Document 당 60 Byte 고정 (반드시 메모리에 상주)Headroom일종의 Metadata 를 위한 보정치
SSD 를 사용하면 Memory 의 25% , Hard Disk 사용 시 Memory 의 30%High Water MarkCouchbase 에서 설정하는 RAM 의 High Water MarkDefault 로 Node의 RAM 에 85% 로 설정 - 산정 공식
VariableDescriptionDetailNo_of_copies1 + 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_SetTotal_dataset * ( Working_set_percentage )메모리에 상주시킬 평균 Working Set 크기Cluster RAM quota Required(Total_metadata + Working_set ) * ( 1 + headroom) / ( high water mark)Cluster 에서 사용될 총 RAM 필요 크기Number of NodesCluster RAM quota required / RAM quota per nodeCluster 구성에 필요한 노드 수
RAM quota per node 는 Physical Memory - 2GB 권고 - 산정 공식 예시 (Input Variable)
Input VariableSample ValueDocument Count1,000,000 RowID Size100 ByteValue Size10,000 ByeNumber of Replicas1Working Set Percentage20 %Type Of Storage
-- Overhead PercentageIF(HDD)THEN
30%Metadata Per Document60 ByteHigh Water Mark85 %RAM quota per node6 GB ( Physical Mem 8GB 시) - 산정 공식 대입 예시(Calculation)
variableCalculationDetailNo_of_copies1 + 1원본 노드와 Replica 수의 합Total_metaData1,000,000 * ( 60 + 100) * (2) = 320,000,000 Byte1,000,000 Row 에 필요한 MetaData 크기 (반드시 RAM 에 상주)Total_Dataset1,000,000 * (10,000) * (2) =
20,000,000,000 ByteKey 를 제외한 총 Data 의 크기Working_Set20,000,000,000 * (0.2) =4,000,000,000 ByteWorking 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 Nodes6.6 GB / 6GB = 1.1 Node Or 2 NodeCluster 구성에 필요한 노드의 수는( Cluster RAM Quota Required /노드당 Quota )
Disk Throughput and sizing
- Size
- Key-Value Data Only : Disk 의 사이즈는 Key-value data 만을 유지하는 기준으로 저장될 모든 Dataset 의 size 의 2~3배를 권고합니다.
- View 사용 : View 가 사용될 경우 View 는 실제 데이터를 저장하여 Indexing 으로 사용하기 때문에 View 의 개수에 따라 적절히 추가 산정해야 합니다.
- Throughpu
- Couchbase 는 데이터 영속성을 위해 Disk 에 Key-value 를 저장하게 되므로, Disk I/O 도 중요합니다.
- Couchbase Server 의 Install 영역과 Data, Index(View) 영역을 물리적인 Disk 분할 함으로서 I/O 분산 효과로 성능이 향상됩니다.분류물리적 분할MountEngine/dev/sda1/opt/couchbaseData/dev/sdb/dataIndex/dev/sdc/index
- RAID 구성은 필요조건은 아니나 RAID 0 or 10 을 권장합니다.
- Size
Network Bandwidth
- 최소 1 Gig Bit 대역의 Network 으로 구성하는 것이 좋으며, Low latency 가 중요한 환경일 경우 10 Gig Bit 대역도 성능 향상에 도움이 됩니다.
Couchbase Version
- 현재 Community Edition의 최신 버전을 사용할 것을 권장
권장 SPEC 요약
항목권장 SPECCPU8 CoreRAM(Physical)최소 16GB ~ 32GB ( 추가 확장 필요시 Scale-Out 으로 확장)DiskHDD Disk ( Data/Index 물리적 분활) , 예상 저장 DataSet 의 3배 권장Network1 Gig Bit BandwidthCouchbase VersionCommunity Edition 최신 버전
2016년 9월 30일 금요일
Couchbase ( 시스템 산정 가이드 )
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기