統計およびメトリクスの取得
DataStaxツールとJavaコンソール(JConsole)を使用したノードとクラスターの統計情報の取得。
クラスターのパフォーマンス特性を理解することは、問題の診断とキャパシティ・プランニングに不可欠です。DataStaxツールとJavaコンソール(JConsole)を使用してノードとクラスターの統計情報を取得します。
DataStax Enterpriseは、Java Management Extensions(JMX)を介して、多数の統計と管理操作を公開しています。JMXは、Javaアプリケーションおよびサービスを管理および監視するツールを提供するJavaテクノロジーです。JavaアプリケーションがMBeanとして公開した統計情報または操作はすべて、JMXを使用して監視したり、制御したりすることができます。
同じツールを使用して、キャッシュのフラッシュやnode repairの実行などの、特定の管理コマンドおよび操作を実行できます。
nodetoolの使用
統計を取得するには、nodetoolコマンドを使用します。
nodetoolユーティリティは、クラスターを監視したり、日常のデータベース操作を実行したりするためのコマンドライン・インターフェイスです。通常は、動作ノードから実行します。
- nodetool tablestatsは、各テーブルおよびキースペースの統計を表示します。
- nodetool tablehistogramsは、読み取り/書き込みのレイテンシー、行サイズ、カラム数、SSTableの数など、テーブルの統計を提供します。
- nodetool netstatsは、ネットワーク操作および接続に関する統計を提供します。
- nodetool tpstatsは、スレッド・プールごとに、データベースの操作の各段階のアクティブなタスク、保留中のタスク、完了したタスクの数に関する統計を提供します。
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
リングとその健全性の現状に関する簡単なサマリーを出力するには、nodetool statusを使用します。例を次に示します。nodetool status
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
JConsoleの使用
JConsoleを使用してDSEによって公開されたJMXメトリクスおよび操作を表示します。
JConsoleは、Javaアプリケーションを監視するためのJMX対応ツールです。JConsoleは、DataStax Enterprise(DSE)によって公開されているJMXのメトリクスおよび操作を消費し、それらを整然としたGUIに表示します。
JConsoleのインストールとノードへの接続
メトリクスを表示するには、JConsoleをインストールしてノードに接続します。
JConsoleはSun JDK 5.0以降に付属しており、OpenJDKにも含まれています。
始める前に
また、JMXユーザーの認証とMBeanへの役割ベースのアクセス制御が必要な場合は、JMX認証を構成してください。
手順
-
OpenJDKをインストールした後、ターミナルからJConsoleを起動します。すると、JConsole GUIが開きます。
jconsole
-
JConsole GUIで、[Remote Process]を選択し、接続先のノードのIPアドレスとポートを入力します。DSE JMXメトリクスのデフォルトの監視ポートは7199です。
- オプション: 接続先のノードのユーザー名とパスワードを入力します。
- [Connect]をクリックしてノードに接続します。
- JConsole GUIで、[MBeans]タブをクリックします。
- 左側のナビゲーションで、[org.apache.cassandra.metrics]をクリックすると、すべてのDSEメトリクスが表示されます。
JConsoleでのメトリクスの表示
詳細なDSEメトリクスはJConsoleを使用して表示できます。
- [Overview]
- Java VMおよび監視対象の値に関する概要情報を表示します。
- [Memory]
- メモリーの使用に関する情報を表示します。
- [Threads]
- スレッドの使用に関する情報を表示します。
- [Classes]
- クラス・ローディングに関する情報を表示します。
- [VM Summary]
- Java仮想マシン(VM)に関する情報を表示します。
- [MBeans]
- MBeanに関する情報を表示します。
- 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.metrics MBeanを選択して展開すると、次の情報が表示されます。
nodetool sjkの使用
MBeanからデータベース情報を収集するには、nodetool sjk mxを使用します。
nodetoolには組み込みコマンドnodetool sjkとしてオープン・ソースのSwiss Java Knifeが含まれており、トラブルシューティングに使用できます。この項では、mx
サブコマンドを使用してJMX MBean値を取得して設定し、MBeanの特定のリストを操作する方法について説明します。
nodetool sjk mxdump
コマンドは、公開されているすべてのMBeanのコンソールへの出力を試みます。シリアライズ不可能な型を公開する、不適切な形式のMBeanがある場合、このコマンドは失敗する可能性があります。MBeanの特定のリストに関する操作を行うには、nodetool sjk mx
コマンドを使用します。
シリアライズ不可能な型(mx4j MBeanなど)が返された場合のエラーを回避するには、-q
(query)スイッチを指定してnodetool sjk mx
コマンドを実行します。
MBean名のリスト
コマンドラインからMBeansを呼び出したり、CQLでパーミッションを設定するには、最初に、MBeanの完全な名前を取得します。
echo "beans" | java -jar jmxterm-1.0.0-uber.jar -l localhost:7199 -n 2>&1
commitlog
という語を含むMBeanを検索するには、次のようにします。echo "beans" | java -jar /tmp/jmxterm-1.0.0-uber.jar -l localhost:7199 -n 2>&1 | grep -i commitlog
nodetool sjk mx
コマンドで使用したり、CQLのGRANTおよびREVOKEコマンドのパーミッションを管理したりするためのMBeanの完全一致の文字列が結果に表示されます。com.datastax.bdp.advrep.v2.metrics:name=CommitLogMessagesRead,type=ReplicationLog
com.datastax.bdp.advrep.v2.metrics:name=CommitLogsDeleted,type=ReplicationLog
com.datastax.bdp.advrep.v2.metrics:name=CommitLogsToConsume,type=ReplicationLog
org.apache.cassandra.db:type=Commitlog
org.apache.cassandra.metrics:name=CompletedTasks,type=CommitLog
org.apache.cassandra.metrics:name=PendingTasks,type=CommitLog
org.apache.cassandra.metrics:name=TotalCommitLogSize,type=CommitLog
org.apache.cassandra.metrics:name=WaitingOnCommit,type=CommitLog
org.apache.cassandra.metrics:name=WaitingOnSegmentAllocation,type=CommitLog
MBeanオプションおよび値の取得
nodetool sjk mx -b "org.apache.cassandra.metrics:name=TotalCommitLogSize,type=CommitLog" -mi
org.apache.cassandra.metrics:type=CommitLog,name=TotalCommitLogSize
org.apache.cassandra.metrics.CassandraMetricsRegistry$JmxGauge
- Information on the management interface of the MBean
(A) Value : java.lang.Object
- Attribute exposed for management
(O) objectName() : javax.management.ObjectName
- Operation exposed for management
nodetool sjk mx -b "org.apache.cassandra.metrics:name=TotalCommitLogSize,type=CommitLog" -f Value -mg
org.apache.cassandra.metrics:type=CommitLog,name=TotalCommitLogSize
67108864
-mi
オプションを使用して数値の数を確認してください。nodetool sjk mx -b "org.apache.cassandra.metrics:name=Latency,scope=Read,type=ClientRequest" -mi
org.apache.cassandra.metrics:type=ClientRequest,scope=Read,name=Latency
org.apache.cassandra.metrics.CassandraMetricsRegistry$JmxTimer
- Information on the management interface of the MBean
(A) Max : double
- Attribute exposed for management
(A) Min : double
- Attribute exposed for management
(A) Mean : double
- Attribute exposed for management
(A) StdDev : double
- Attribute exposed for management
(A) 95thPercentile : double
- Attribute exposed for management
(A) DurationUnit : String
- Attribute exposed for management
(A) 50thPercentile : double
- Attribute exposed for management
(A) 75thPercentile : double
- Attribute exposed for management
(A) 98thPercentile : double
- Attribute exposed for management
(A) 99thPercentile : double
- Attribute exposed for management
(A) 999thPercentile : double
- Attribute exposed for management
(A) OneMinuteRate : double
- Attribute exposed for management
(A) FifteenMinuteRate : double
- Attribute exposed for management
(A) FiveMinuteRate : double
- Attribute exposed for management
(A) MeanRate : double
- Attribute exposed for management
(A) RateUnit : String
- Attribute exposed for management
(A) Count : long
- Attribute exposed for management
(O) values() : long[]
- Operation exposed for management
(O) objectName() : javax.management.ObjectName
- Operation exposed for management
nodetool sjk mx -b "org.apache.cassandra.metrics:name=Latency,scope=Read,type=ClientRequest" -f 99thPercentile -mg
org.apache.cassandra.metrics:type=ClientRequest,scope=Read,name=Latency
3379.391