すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:メモリ管理

最終更新日:Mar 27, 2026

StarRocks Backend (BE) ノードは、詳細なメモリメトリックを公開し、各ワークロードカテゴリが消費できるメモリ量を制御する構成パラメーターを受け付けます。本トピックでは、メモリ使用量のカテゴリ、BE およびセッションの構成パラメーターについて説明し、ランタイムにおけるメモリ使用量の確認方法を示します。

メモリ使用量のカテゴリ

各 BE は、以下のカテゴリごとにメモリ消費量を追跡します。これらのメトリックは /metrics エンドポイントで公開されており、mem_tracker インターフェイスでも確認できます。

ラベルメトリック名説明BE 構成パラメーター
processstarrocks_be_process_mem_bytes予約済みの空きメモリを除いた、BE プロセスが実際に使用しているメモリ量mem_limit
query_poolstarrocks_be_query_mem_bytesBE のクエリレイヤーが使用する合計メモリ量該当なし
loadstarrocks_be_load_mem_bytesインポートタスクが使用する合計メモリ量load_process_max_memory_limit_bytesload_process_max_memory_limit_percent
table_metastarrocks_be_tablet_meta_mem_bytesメタデータが使用する合計メモリ量該当なし
compactionstarrocks_be_compaction_mem_bytesマルチバージョンメモリコンパクションが使用する合計メモリ量compaction_max_memory_limitcompaction_max_memory_limit_percent
column_poolstarrocks_be_column_pool_mem_bytesストレージレイヤーにおけるデータ読み取りを高速化するために使用されるカラムプールのメモリ量該当なし
page_cachestarrocks_be_storage_page_cache_mem_bytesBE のストレージレイヤーにおけるページキャッシュdisable_storage_page_cachestorage_page_cache_limit
chunk_allocatorstarrocks_be_chunk_allocator_mem_bytesCPU コアごとのキャッシュで、小規模メモリチャンクの割り当てを高速化chunk_reserved_bytes_limit
consistencystarrocks_be_consistency_mem_bytes定期的な整合性チェックタスクが使用するメモリ量consistency_max_memory_limitconsistency_max_memory_limit_percent
schema_changestarrocks_be_schema_change_mem_bytesスキーマ変更タスクが使用する合計メモリ量memory_limitation_per_thread_for_schema_change
clonestarrocks_be_clone_mem_bytesタブレットクローンタスクが使用する合計メモリ量該当なし
updatestarrocks_be_update_mem_bytesプライマリキー モデルが使用する合計メモリ量該当なし

BE のメモリ構成パラメーターの変更

EMR コンソールで BE のメモリ構成パラメーターを追加または変更するには、次の手順を実行します。

  1. ECS 上の EMR ページで、StarRocks クラスターを見つけ、[操作] 列の サービス をクリックします。

  2. サービス タブで、StarRocks セクションの 構成 をクリックします。

  3. 構成 タブで、be.conf タブをクリックします。

  4. 既存のパラメーターを変更するか、設定項目を追加 をクリックして新しいパラメーターを追加します。

詳細については、「設定項目の管理」をご参照ください。

メモリ構成パラメーター

BE 構成パラメーター

以下のパラメーターは be.conf で設定します。

パラメーターデフォルト値説明
mem_limit90 %BE が使用できるサーバー全体のメモリの最大割合。ハードリミットは 90 %、ソフトリミットは 80 % です。BE が他のメモリ集約型サービスとサーバーを共有する場合は、この値を下げてメモリ競合を回避してください。
load_process_max_memory_limit_bytes107,374,182,400インポートタスクが合計で使用できる最大メモリ量(バイト単位)。有効なリミットは min(mem_limit × load_process_max_memory_limit_percent / 100, load_process_max_memory_limit_bytes) です。このリミットに達すると、StarRocks はディスクへのフラッシュをトリガーし、バックプレッシャーを適用してデータ取り込み速度を低下させます。
load_process_max_memory_limit_percent30mem_limit のうち、インポートタスクが合計で使用できる最大割合。 load_process_max_memory_limit_bytes と併用され、計算された小さい方の値が有効になります。
compaction_max_memory_limit-1コンパクションタスクが使用できる最大メモリ量(バイト単位)。有効なリミットは min(mem_limit × compaction_max_memory_limit_percent / 100, compaction_max_memory_limit) です。デフォルト値 -1 は制限なしを意味します。コンパクションによるメモリ消費が過剰でない限り、デフォルト値を維持してください。リミットを超えると、コンパクションタスクは失敗します。
compaction_max_memory_limit_percent100mem_limit のうち、コンパクションタスクが使用できる最大割合。 compaction_max_memory_limit と併用され、計算された小さい方の値が有効になります。
disable_storage_page_cachetrueストレージレイヤーのページキャッシュを無効化するかどうか。メモリが十分に確保でき、クエリが大量のデータを繰り返しスキャンする場合に、false に設定することでページキャッシュを有効化できます。これにより、クエリパフォーマンスが大幅に向上する可能性があります。storage_page_cache_limit と併用して、キャッシュサイズの上限を設定してください。
storage_page_cache_limit0ストレージレイヤーのページキャッシュに割り当てる最大メモリ量。 disable_storage_page_cachefalse の場合にのみ有効です。
chunk_reserved_bytes_limit2,147,483,648小規模メモリチャンクの割り当てを高速化するために使用される CPU コアごとのキャッシュの最大メモリ量。デフォルト値は 2,147,483,648 バイト(2 GB)です。メモリが十分に確保でき、割り当てオーバーヘッドを削減したい場合は、この値を増加させてください。
consistency_max_memory_limit10 G整合性チェックタスクが使用できる最大メモリ量。有効なリミットは min(mem_limit × consistency_max_memory_limit_percent / 100, consistency_max_memory_limit) です。リミットを超えると、整合性チェックタスクは失敗します。
consistency_max_memory_limit_percent20mem_limit のうち、整合性チェックタスクが使用できる最大割合。 consistency_max_memory_limit と併用され、計算された小さい方の値が有効になります。
memory_limitation_per_thread_for_schema_change2スキーマ変更タスクのスレッドあたりのメモリ制限。この制限を超えると、スキーマ変更タスクは失敗します。
tc_use_memory_min10,737,418,240TCMalloc に予約する最小メモリ量。TCMalloc の予約メモリがこのしきい値を下回ると、StarRocks はオペレーティングシステムに空きメモリを返却しなくなります。

セッション変数

以下の変数はセッション単位で適用され、SET 文で設定できます。

変数デフォルト値説明
exec_mem_limit2,147,483,648単一クエリインスタンスに対するメモリ制限(バイト単位)。
load_mem_limit0単一インポートタスクに対するメモリ制限(バイト単位)。デフォルト値 0 は、exec_mem_limit の値が使用されることを意味します。

メモリ使用量の確認

メトリックインターフェイスの使用

メトリックエンドポイントは 10 秒ごとに更新されます。以下のコマンドを実行して、すべての BE メモリメトリックを取得します。

# BE のデフォルト Web サーバーポートは 8040 です。
curl -XGET -s http://<BE_IP>:8040/metrics | grep "^starrocks_be_.*_mem_bytes\|^starrocks_be_tcmalloc_bytes_in_use"

各メトリックの説明については、「メモリ使用量のカテゴリ」をご参照ください。

mem_tracker インターフェイスの使用

mem_tracker インターフェイスは、メモリ使用量の階層ビューを提供します。ブラウザまたは cURL でアクセスできます。

http://<be_ip>:8040/mem_tracker

このインターフェイスには、以下のフィールドが表示されます。

フィールド説明
levelMemTracker はツリー構造を使用します。レベル 1 は BE 全体のメモリ使用量を示します。レベル 2 は個別のメモリ使用量カテゴリを示します。
Labelメモリ使用量カテゴリを識別します。「メモリ使用量のカテゴリ」で完全なリストをご確認ください。
Parentツリー内の親ノードのラベルです。
Limitこのノードのメモリ使用量制限です。none は制限が設定されていないことを意味します。
Current Consumption現在のメモリ使用量です。
Peak Consumptionピーク時のメモリ使用量です。