Search:

Search all manuals
Search this manual
Manual
Couchbase Server 1.8 マニュアル
Additional Resources
Community Wiki
Community Forums
Couchbase SDKs
Parent Section
4.2 サイジングのガイドライン
Chapter Sections
Chapters

4.2.1. RAMサイズ

4.2.1.1. ワーキングセット
4.2.1.2. メモリ割り当て

RAMは、通常、最も重要なサイジングのパラメータです。また、パフォーマンスと安定性に最も大きな影響を与えます。

4.2.1.1. ワーキングセット

クラスタに必要なメモリ量を決定する前に、"ワーキングセット"の概念を理解しておく必要があります。ある時点での"ワーキングセット"はアプリケーションがアクティブに利用しているデータのことです。全てのワーキングセットをメモリ上に乗せることが理想的です。

4.2.1.2. メモリ割り当て

Couchbaseクラスタを、予定するワーキングセットのサイズと全データのサイズに応じてサイジングすることは非常に重要です。

Couchbaseで利用するRAMサイジングのゴールはワーキングセットに加え、全てのドキュメントID、ドキュメントIDメタデータをクラスタのメモリ内、かつ、Couchbaseがメモリデータの排出を始めるポイント付近(ハイウォータマーク)に収めることです。

ノード単位に必要となるメモリとディスク容量は以下の様々な変数に依存しています。

注記

計算はバケット単位に行います

以下の計算はバケット単位の計算です。全てのバケットの計算結果を合計する必要があります。全てのバケットが同一の設定となっている場合、考慮すべきバケット単位のオーバヘッドが存在しないため、全てのデータを単一のバケットとして扱うことができます。

表4.1 入力変数

変数内容
総ドキュメント数予定するドキュメント総数
IDサイズドキュメントIDの平均サイズ
ドキュメントサイズドキュメントの平均サイズ
レプリカ数保持するオリジナルデータのコピー数
ワーキングセット率メモリ内に配置したいデータの割合
ノード単位のRAM容量Couchbaseに割り当てることが出来るRAM容量

以下は、必要なメモリの計算に使用する、定数であると仮定している項目です。

表4.2 定数

定数内容
ドキュメントメタデータこれはCouchbaseがドキュメント毎のメタデータを保存するために必要なスペースです。ドキュメント当たり120バイト必要です。全てのドキュメントIDとそのメタデータは常にメモリ上に存在する必要があります。
SSDまたは回転式ディスクSSDは優れたI / Oパフォーマンスを提供します。
オーバヘッド [a] 一般的にSSDは回転式ディスクよりも高速であるため25%(0.25)、回転式(従来の)ハードディスクの場合30%(0.30)となります。
ハイウォータマークデフォルトでは、ノードに割り当てられたメモリの70%に設定されています

[a] これはクラスタが保存する情報についてのメタデータを保存するために必要となる追加のオーバヘッドです。データセット用のRAM要件に対し、約25~30%余分に必要となります。


こちらが、クラスタのサイジングを行うための大まかなガイドラインです。

変数計算値
コピー数1 + レプリカ数
全メタデータ [a] (総ドキュメント数) * (ドキュメントメタデータ+ IDサイズ) * (コピー数)
全データセット(総ドキュメント数) * (ドキュメントサイズ) * (コピー数)
ワーキングセット全データセット * (ワーキングセット率)
クラスタRAM容量(全メタデータ+ ワーキングセット) * (1 + オーバヘッド) / (ハイウォータマーク)
ノード数クラスタRAM容量 / ノード単位のRAM容量

[a] 全てのドキュメントIDとメタデータはメモリに存在する必要があります

注記

データサイズに関わらず、少なくともレプリカ数 + 1のノードが必要になります。

サイジング計算例

表4.3 入力変数

入力変数
総ドキュメント数1,000,000
IDサイズ100
ドキュメントサイズ10000
レプリカ数1
ワーキングセット率20%

表4.4 定数

定数
ストレージの種類SSD
オーバヘッド25%
ドキュメントメタデータ120
ハイウォータマーク70%

表4.5 変数の計算

変数計算結果
コピー数= 2 [a]
全メタデータ= 1,000,000 * (100 + 120) * (2) = 440,000,000
全データセット= 1,000,000 * (10000) * (2) = 20,000,000,000
ワーキングセット= 20,000,000,000 * (0.2) = 4,000,000,000
クラスタRAM容量= (440,000,000 + 4000,000,000) * (1+0.25)/(0.7) = 7928,000,000

[a] オリジナルとレプリカ


たとえば、8GBのマシンを持っていて、Couchbaseに6 GBを使用する場合:

ノード数 = クラスタRAM容量 / ノード単位のRAM容量 =    7.9 GB/6GB = 1.3 つまり 2 ノード

注記

RAMの割当

他のプログラムを実行する場合、ノード単位のRAM容量に全ての物理RAMを割り当てることはできません。