Couchbase Serverは、非常に大きな領域をRAM上に取られている時、RAMからアイテムを追い出すためのプロセスを持っています;この追い出し処理では、RAMからドキュメントが削除されますが、アイテムのキーとメタデータはRAM上に残ります。アイテムによって多量のRAMが消費されると、サーバはレプリカデータから追い出し処理をします。このしきい値は、 低水準値として知られています。次に、高しきい値を突破した場合、Couchbaseサーバはレプリカデータを追い出すだけでなく、使用頻度の低いアイテムを追い出します。この2番目のRAMしきい値は高水準値として知られています。サーバは、アイテム毎のNRU(Not-Recently-used)の判定に基づいて、アイテムが最近使用されていないか判定します。排出プロセス中のサーバ動作を変更するために、いくつかの設定を調整することができます。一般的に、変更を必要としている場合を除き、Couchbase Server 2.0用の排出設定のデフォルト値を変更することはお勧めしていません。
このツールはノード毎、バケット毎の処理であることに注意してください。この操作を実行する場合、クラスタ内のノードのIPアドレスと名前付きバケットを指定する必要があることを意味します。名前付きバケットを指定しない場合、サーバは指定されたノードに存在する任意のデフォルトのバケットに設定を適用します。クラスタ全体に対してこの処理を実行する場合は、そのクラスタに存在するすべてのノード/バケットの組み合わせに対してコマンドを実行する必要があります。
排出プロセス、NRUの役割と排出に関連するサーバプロセスに関する技術情報は、「排出とワーキングセットの管理」を参照してください。
低水準値の設定
これは、ノード上で理想的に消費したいRAMの量を表します。このしきい値に達した場合は、サーバはレプリカアイテムをディスクへ排出し始めます。例えば、この割合を変更するには:
shell> ./cbepctl 10.5.2.31:11210 -b bucket_name -p bucket_password set flush_param mem_low_wat 65
この設定を変更するときにも、バイトの絶対値を指定することができます。
高水準値の設定
これは、使用頻度の低いアイテムが追い出され始めるアイテムのRAM消費量を表します。この値を変更するには、Couchbaseのコマンドラインツールcbepctlを使用します:
shell> ./cbepctl 10.5.2.31:11210 -b bucket_name -b bucket_password set flush_param mem_high_wat 70
ここでは特定ノード上の特定データバケット向けにRAMの70%を、高水準値として設定します。これは、アイテムページャがアイテムの追い出しを開始する前に、このノード上のRAM内のアイテムがRAMの70%を消費する可能性があることを意味します。このしきい値を設定するときにも、バイトの絶対値を指定することができます。
排出されたアイテムの割合設定
Couchbase Serverは頻繁に使用しない全アイテムを削除した後、依然として高水準値を突破していると、サーバはそのデータが稀にしか使用されていないかどうかにかかわらずノードからレプリケートされたデータとアクティブなデータを排出します。デフォルトでは、サーバは、アクティブなアイテムをランダムに40%排出するように構成され、ノードからレプリカデータをランダムに60%排出します。
コマンドラインツールcbepctlを使用してレプリカアイテムに対するアクティブアイテム排出のデフォルトの割合も変更できます。
shell> ./cbepctl 10.5.2.31:11210 -b bucket_name -p bucket_password set flush_param pager_active_vb_pcnt 50
これはノードから排出させることができるアクティブなアイテムの割合を50%に高くします。この変更を行った場合、潜在的なパフォーマンスへの影響に注意してください。非常に簡単に言えば、可能な限り多くのレプリカアイテムを排出し、排出することができるアクティブデータの量を制限することがより望ましいように思えるかもしれません。そうすることで、できるだけ多くのソースノードからのアクティブなデータを保持し、そのノードへ入ってくるリクエストを維持することができます。しかし、レプリカデータの非常に大きな割合をサーバが排出するようにしている場合、ノードに障害が発生すると、レプリカのデータはすぐに使用することはできません。その場合には、Couchbase ServerはディスクからRAMにアイテムを取得する必要があります。その後、リクエストに応答することができます。Couchbase Server 2.0では、一般的にこれらのデフォルト値を変更しないことをお勧めします。
排出プロセスや、NRUの役割と排出に関連したとサーバプロセスに関する技術情報は、「排出とワーキングセットの管理」を参照してください。