nodetool leaksdetection

メモリー・リークのトラッキングを有効にして構成します。

cassandra.yaml

cassandra.yamlファイルの場所は、インストールのタイプによって異なります。
パッケージ・インストール /etc/dse/cassandra/cassandra.yaml
tarボール・インストール installation_location/resources/cassandra/conf/cassandra.yaml

debug.log

  • system.logファイルの場所は次のとおりです。 /var/log/cassandra/debug.log

system.log

system.logファイルの場所は:
  • /var/log/cassandra/system.log

メモリー・リークのトラッキングを有効にして構成します。トラッキング情報は、リークが検出された場合、 debug.log およびsystem.log のスタック・トレースとともに提供されます。

現在追跡されているリソースは次のとおりです。
CachedReadsBufferPool
チャンク・キャッシュに格納されているファイル・チャンクによって使用される非ブロッキングi/o(NIO)バイト・バッファー。チャンク・キャッシュは、ファイル・キャッシュとも呼ばれます。
DirectReadsBufferPool
一部の分散ファイル読み取りなど、一時的で短期的な操作に使用されるNIOバイト・バッファー。
ChunkCache
チャンク・キャッシュ内のファイル・チャンク。チャンク・キャッシュは、ファイル・キャッシュとも呼ばれます。
Memory
ネイティブ・メモリーはmalloc呼び出しで直接アクセスされるため、JVMによって管理されません。現在、圧縮メタデータ、ブルーム・フィルター、および行キャッシュに使用されています。
注: DSE 6.x以降では行キャッシュを無効にする必要があります。
memtableがオフヒープ・オブジェクトを使用している場合は、次のリソースも追跡できます。
NativeAllocator
memtableの割り当てタイプがオフヒープ・オブジェクトの場合にmemtableに使用されるメモリ。
ヒント: リーク検出パラメーターは、cassandra.yamlでも設定できます。「メモリー・リーク検出設定」を参照してください。

構文

nodetool [connection_options] leaksdetection
         [--set_max_stack_depth number] 
         [--set_max_stacks_cache_size number]
         [--set_num_access_records number] 
         [--set_sampling_probability number]
         [resource]
1. 凡例
構文規則 説明
大文字 リテラル・キーワード。
小文字 リテラル以外。
Italics 変数値。有効なオプションまたはユーザー定義値と置き換えます。
[ ] 任意。角かっこ( [] )で任意のコマンド引数を囲みます。角かっこは入力しないでください。
( ) グループ。丸かっこ(( ))は、選択肢を含むグループを示します。丸かっこは入力しないでください。
| または。縦棒(|)で代替要素を区切ります。要素のいずれかを入力してください。縦棒は入力しないでください。
... 繰り返し可能。省略記号(...)は、構文要素を必要な回数だけ繰り返すことができることを示します。
'Literal string' 単一引用符( ' )でCQL文内のリテラル文字を囲みます。大文字を維持するには、単一引用符を使用します。
{ key:value } マップ・コレクション。中かっこ( { } )でマップ・コレクションまたはキーと値のペアを囲みます。コロンでキーと値を区切ります。
<datatype1,datatype2> セット、リスト、マップ、またはタプル。山かっこ(< >)で、セット、リスト、マップまたはタプル内のデータ型を囲みます。データ型をカンマで区切ります。
cql_statement; CQL文の終了。セミコロン( ; )ですべてのCQL文を終了します。
[ -- ] コマンドライン・オプションとコマンド引数は、2つのハイフン(--)で区切ります。この構文は、引数がコマンドライン・オプションと間違われる可能性がある場合に役立ちます。
' <schema> ...</schema> ' 検索CQLのみ:単一引用符( ' )でXMLスキーマ宣言全体を囲みます。
@xml_entity='xml_entity_type' 検索CQLのみ:スキーマ・ファイルおよびsolrconfigファイル内のXML要素を上書きする実体とリテラル値を示します。

定義

短い形式と長い形式のパラメーターはカンマで区切られています。

接続オプション

-h, --host hostname
リモート・ノードのホスト名またはIPアドレス。省略した場合、デフォルトはローカル・マシンです。
-p, --port jmx_port
JMXポート番号。
-pw, --password jmxpassword
セキュアなJMXで認証するためのJMXパスワード。パスワードを入力しないと、入力するように求められます。
-pwf, --password-file jmx_password_filepath
JMX認証用の資格情報を格納するファイルへのファイルパス。
-u, --username jmx_username
セキュアなJMXで認証するためのユーザー名。

コマンド引数

--set_max_stack_depth number
収集されたスタック・トレースの深さ。パラメーターが設定された時点から収集されたスタック・トレースの深さのみ変更します。スタックが深いほど、一意性が高くなるため、深さを上げる場合は、stacks_cache_size_mbを増やす必要があります。
デフォルト:30
--set_max_stacks_cache_size_mb number
呼び出しスタック・トレースの最大サイズ。リークしたリソースのデバッグ、およびヒープ・メモリーの使用にはスタック・トレースが使用されます。最大スタック・キャッシュ・サイズをMB単位で設定することによって、各リソース専用のヒープ・メモリーの量を設定します。
デフォルト:32
--set_num_access_records number
リソースがアクセスされる時点で保持されているスタック・トレースの平均数。現在、キャッシュ内のチャンクに対してのみサポートされています。
デフォルト:0
--set_sampling_probability number
指定されたリソースについて追跡されるサンプリング確率。
  • 0 - 追跡を無効
  • 1 - 常に追跡を有効
  • 0~1の数字 - リソースをランダムに追跡する時間の割合。たとえば、0.1と指定した場合、時間の10%でリソースが追跡されます。
注意: 追跡を行うと、アクセスのたびにスタック・トレース収集に大きな負担が掛かり、ヒープ・スペースを消費します。追跡を有効にする場合は、必ず、DataStaxサポートの指示を受けてください。
デフォルト:0
resource
パラメーターの適用先のリソース。指定しない場合、パラメーターはすべてのリソースに影響します。

現在のメモリー・リーク検出ステータスを出力します

nodetool leaksdetection
結果:
Current Status:
CachedReadsBufferPool/ByteBuffer - Sampling probability: 0.000000, Max stacks cache size MB: 32, num. access records: 0, max stack depth: 30
DirectReadsBufferPool/ByteBuffer - Sampling probability: 0.000000, Max stacks cache size MB: 32, num. access records: 0, max stack depth: 30
ChunkCache/Chunk                 - Sampling probability: 0.000000, Max stacks cache size MB: 32, num. access records: 0, max stack depth: 30
Memory/Memory                    - Sampling probability: 0.000000, Max stacks cache size MB: 32, num. access records: 0, max stack depth: 30

サンプリング確率をメモリー・リソースの25%に設定します

nodetool leaksdetection --set_sampling_probability .25 Memory
結果:
Current Status:
CachedReadsBufferPool/ByteBuffer - Sampling probability: 0.000000, Max stacks cache size MB: 32, num. access records: 0, max stack depth: 30
DirectReadsBufferPool/ByteBuffer - Sampling probability: 0.000000, Max stacks cache size MB: 32, num. access records: 0, max stack depth: 30
ChunkCache/Chunk                 - Sampling probability: 0.000000, Max stacks cache size MB: 32, num. access records: 0, max stack depth: 30
Memory/Memory                    - Sampling probability: 0.100000, Max stacks cache size MB: 32, num. access records: 0, max stack depth: 30.