診断のための重要な統計
"ウォータマーク"はいつメモリの開放を開始する必要があるかを定義しています。この概念の詳細についてはこちらをお読みください。 ウォータマークに関連したいくつかの重要な統計は次のとおりです:ハイウォータマーク(ep_mem_high_wat):これに達すると、システムはメモリから値を排出し始めます。排出された値がアクセスされたときは、ディスクからフェッチする必要があります。ローウォータマーク(ep_mem_low_wat):これに到達しても、システムは何もしません。これはハイウォータマークに達し、システムがデータの排出を開始した場合の"ゴール"です。使用メモリ(mem_used):現在使用しているメモリのサイズ。mem_usedがRAM割当て量に達すると、OOM_ERRORが発生します。mem_usedはデータがメモリから排出される基準となるep_mem_high_wat未満であるべきです。ディスク書込みキューのサイズ(ep_queue_size):ディスクに書込み待ちデータを保持するキューのサイズ。キャッシュのヒット数(get_hits):経験則では、これは全体の要求の少なくとも90%であるべきです。キャッシュミス(get_misses):
次のコマンドを使用してこれらの重要な統計情報の値を取得できます: "/opt/couchbase/bin/ep_engine/management/stats <IP>:11210 all | egrep "todo|ep_queue_size|_eject|mem|max_data|hits|misses" 結果は次のようになります: ep_flusher_todo: ep_max_data_size: ep_mem_high_wat: ep_mem_low_wat: ep_num_eject_failures: ep_num_value_ejects: ep_queue_size: mem_used: get_misses: get_hits:
監視が必要なUIの統計
次のグラフをCouchbaseコンソールの監視対象に追加できます。これらのグラフはBucket Details (Monitor -> Data Buckets) の上部にある"Configure View"リンクをクリックすると選択(解除)できます。
Disk write queues - ディスク書込みキュー:増加していないこと(実際の値はアプリケーションとデプロイ環境に依存します)
Ram ejections - RAMデータ排出:突然のピークがないこと
vBucket errors - vBucketのエラー:増加していないこと
OOM errors per sec - 秒間OOM:0であること
Temp OOM errors per sec - 一時的な秒間OOM:0であること
Connections count - コネクション数:長期にわたる運用で大きく変わらないこと
Get hits per second - 秒間Getヒット
Get misses per second - 秒間Getミス:Get hits per secondよりも少ないこと
その他の監視
標準的な監視ツールを使用して、ディスク容量、CPU使用率と、すべてのノード上でスワップを監視してください。
バキューム
バキュームは、データベースをデフラグすることにより、SQLiteの利用したディスク領域を再構成します。空なのに利用できないスペースを有効にするため、Sqliteのファイルを定期的にバキュームしてください。
リバランス後
リバランス操作自体が完了したら、Couchbaseのクラスタは、移動されたすべてのデータの複製を開始します。将来的にはリバランス自体のプロセスに、このレプリケーションプロセスを含める予定です。しかし現在はリバランス直後に複製されていないデータが存在することを認識しておく必要があります。
そのためには、レプリケーションが完了したことを確信するまで、システムを監視し続けることがベストプラクティスです。レプリケーションには大きく2つの段階があります:
バックフィリング - これはレプリケーションの第一段階で、指定されたアクティブなvBucketの全データを読み込み、レプリカを担当するサーバへ送信します。これはディスクサブシステムとネットワーク帯域の負荷を高めますが、クライアントの動作には一切影響を与えないように設計されています。進行中のTAP disk fechesと、 'stats tap': '/opt/couchbase/bin/ep_engine/management/stats <couchbase_node>:11210 tap | grep backfill'が返却するTAPバックフィルプロセスのリストとそれらがまだ実行中(true)か完了(false)かを監視することで、このタスクの進捗をモニタリングできます。全てが完了したら、総アイテム数がアクティブなアイテム数×レプリカ数に等しくなるはずです(curr_items_totはアクティブなアイテム数を示すcurr_itemsと異なります)。システムにデータを追加し続けている状況であれば、これらの値はその時点の正確な値と異なるかもしれません、しかしアイテムが正しく複製されているかどうかはアクティブアイテムとレプリカアイテムの比率で確認できます。この処理が完了するまで、まだレプリケートされていないデータが失われる可能性があるため、"フェイルオーバー"機能を使用することは避けてください。
ドレイニング - バックフィルプロセスが完了すると、全てのノードは生成したレプリカをディスクに永続化する必要があります。ディスク書込みキューとメモリ使用量の監視を継続することが重要です。