Cassandraのクラスターの監視
Cassandraのクラスターのパフォーマンス特性を理解することは、問題の診断とキャパシティ・プランニングに不可欠です。
Cassandraのクラスターのパフォーマンス特性を理解することは、問題の診断とキャパシティ・プランニングに不可欠です。
Cassandraは、Java Management Extensions(
JMX)を介して、多数の統計と管理操作を公開しています。JMXは、Javaアプリケーションおよびサービスを管理および監視するツールを提供するJavaテクノロジーです。JavaアプリケーションがMBeanとして公開した統計情報または操作はすべて、JMXを使用して監視したり、制御したりすることができます。
通常の運用では、Cassandraは、以下のようなJMX対応ツールを使用して監視が可能な情報および統計を出力します。
- Cassandra nodetoolユーティリティ
- DataStax OpsCenter管理コンソール
- JConsole
同じツールを使用して、キャッシュのフラッシュやノードのリペアなどの、特定の管理コマンドおよび操作を実行できます。
nodetoolユーティリティを使用した監視
nodetoolユーティリティは、Cassandraを監視したり、日常のデータベース操作を実行したりするためのコマンドライン・インターフェイスです。nodetoolは、Cassandraディストリビューションに含まれており、通常、Cassandraの動作ノードから直接実行します。
$ nodetool proxyhistograms proxy histograms Percentile Read Latency Write Latency Range Latency (micros) (micros) (micros) 50% 1502.50 375.00 446.00 75% 1714.75 420.00 498.00 95% 31210.25 507.00 800.20 98% 36365.00 577.36 948.40 99% 36365.00 740.60 1024.39 Min 616.00 230.00 311.00 Max 36365.00 55726.00 59247.00
リングとその健全性の現状に関する簡単なサマリーを出力するには、statusコマンドを使用します。例:$ nodetool proxyhistograms Note:Ownership information does not include topology; for complete information, specify a keyspace Datacenter:datacenter1 ======================= Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns Host ID Rack UN 127.0.0.1 47.66 KB 1 33.3% aaa1b7c1-6049-4a08-ad3e-3697a0e30e10 rack1 UN 127.0.0.2 47.67 KB 1 33.3% 1848c369-4306-4874-afdf-5c1e95b8732e rack1 UN 127.0.0.3 47.67 KB 1 33.3% 49578bf1-728f-438d-b1c1-d8dd644b6f7f rack1
- nodetool tablestatsは、各テーブルおよびキースペースの統計を表示します。
- nodetool cfhistogramsは、読み取り/書き込みのレイテンシー、行サイズ、カラム数、SSTableの数など、テーブルの統計を提供します。
- nodetool netstatsは、ネットワーク操作および接続に関する統計を提供します。
- nodetool tpstatsは、スレッド・プールごとに、Cassandraの操作の各段階のアクティブなタスク、保留中のタスク、完了したタスクの数に関する統計を提供します。
DataStax OpsCenter
DataStax OpsCenterは、1つの中央コンソールから、Cassandraクラスターのすべてのノードを監視および管理するグラフィカル・ユーザー・インターフェイスです。DataStax OpsCenterは、DataStaxのサポートとセットで提供されます。登録すれば、開発または実稼働以外の目的で評価版を使用することができます。
OpsCenterでは、他の監視ツールではなかなか得られないサマリー・ビューで、パフォーマンスの傾向を視覚的に表示することが可能です。GUIは、さまざまな期間を対象としたビューだけでなく、1つのデータ・ポイントにドリルダウンする機能を提供します。OpsCenterでは、CassandraまたはDataStax Enterpriseクラスターのリアルタイムおよび履歴の両方のパフォーマンス・データを利用できます。OpsCenterのメトリックは、キャプチャーされ、Cassandra内に格納されます。
OpsCenter内では、表示するパフォーマンスのメトリックをカスタマイズして、監視のニーズを満たすことができます。また、管理者は、ノード管理の日常的な作業をOpsCenterから実行できます。OpsCenter内のメトリックは、テーブル・メトリック、クラスター・メトリック、およびOSメトリックの3つの主要カテゴリに分けられます。利用できるメトリックの多くは、集計されたクラスター全体の情報として表示したり、ノードごとの情報として表示したりできます。
JConsoleを使用した監視
- 概要
Java VMおよび監視対象の値に関する概要情報を表示します。
- メモリー
メモリーの使用に関する情報を表示します。
- [Threads(スレッド)]
スレッドの使用に関する情報を表示します。
- [Classes(クラス)]
クラス・ローディングに関する情報を表示します。
- [VM Summary(VMサマリー)]
Java仮想マシン(VM)に関する情報を表示します。
- [MBeans]
MBeansに関する情報を表示します。
[Overview(概要)]および[Memory(メモリー)]タブには、Cassandra開発者にとって非常に役立つ情報が記載されています。[Memory(メモリー)]タブでは、ヒープと非ヒープのメモリー使用量を比較できます。また、Javaガーベージ・コレクションをすぐに実行するためのコントロール機能も備えています。
- org.apache.cassandra.auth
パーミッション・キャッシュが含まれます。
- org.apache.cassandra.db
キャッシング、テーブル・メトリック、およびコンパクションなど。
- org.apache.cassandra.internal
ゴシップ、ヒンテッド・ハンドオフ、およびMemtable値などの内部サーバー操作。
- org.apache.cassandra.metrics
CQLにおけるメトリック、クライアント、キースペース、読み取りリペア、ストレージ、スレッド・プールやその他のトピックが含まれます。
- org.apache.cassandra.net
FailureDetector、MessagingService、StreamingManagerなどのノード間通信。
- org.apache.cassandra.request
読み取り、書き込み、およびレプリケーション操作に関するタスク。
- org.apache.cassandra.service
GCInspectorが含まれます。
ツリーのMBeanを選択すると、MBeanInfoおよびMBean記述子が右側に表示され、属性、操作、または通知は、ツリー内のその下に表示されます。たとえば、以下のように、テーブルで利用可能なアクションを表示するためにorg.apache.cassandra.db MBeanを選択して展開すると、以下のように表示されます。
JConsoleを使用してCassandraを監視することを選択する場合は、JConsoleがかなりの量のシステム・リソースを使用することに注意してください。このため、DataStaxでは、Cassandraのノードと同じホスト上ではなく、リモート・マシンでJConsoleを実行することを推奨します。
JConsole CompactionManagerMBeanは、クラスターのキャパシティを増やす必要があるタイミングを示すことが可能なコンパクション・メトリックを公開しています。