You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by mo...@apache.org on 2021/03/11 14:33:45 UTC

[incubator-doris] branch master updated: [Enhance] Improve the readability of memtrackers' name (#5455)

This is an automated email from the ASF dual-hosted git repository.

morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 0131c33  [Enhance] Improve the readability of memtrackers' name (#5455)
0131c33 is described below

commit 0131c3396621b315fc672b028ea18338c92fb320
Author: Yingchun Lai <40...@qq.com>
AuthorDate: Thu Mar 11 22:33:31 2021 +0800

    [Enhance] Improve the readability of memtrackers' name (#5455)
    
    Improve the readability of memtrackers' name, then you will be happy to read website be_ip:port/mem_tracker
---
 be/src/exec/base_scanner.cpp              | 3 ++-
 be/src/exec/data_sink.cpp                 | 3 +--
 be/src/exec/data_sink.h                   | 1 +
 be/src/exec/es_http_scanner.cpp           | 3 ++-
 be/src/exec/exec_node.cpp                 | 4 ++--
 be/src/exec/olap_scanner.cpp              | 4 +++-
 be/src/exec/tablet_sink.cpp               | 4 +++-
 be/src/http/action/compaction_action.cpp  | 4 ++--
 be/src/http/action/compaction_action.h    | 2 +-
 be/src/olap/compaction.cpp                | 8 ++++++--
 be/src/olap/delta_writer.cpp              | 4 +++-
 be/src/olap/delta_writer.h                | 1 +
 be/src/olap/fs/file_block_manager.cpp     | 2 +-
 be/src/olap/memtable.cpp                  | 2 +-
 be/src/olap/rowset/segment_reader.cpp     | 2 +-
 be/src/olap/storage_engine.cpp            | 7 +++----
 be/src/runtime/buffered_block_mgr2.cc     | 2 +-
 be/src/runtime/data_spliter.cpp           | 4 +++-
 be/src/runtime/data_stream_recvr.cc       | 5 ++++-
 be/src/runtime/data_stream_sender.cpp     | 4 +++-
 be/src/runtime/exec_env_init.cpp          | 2 +-
 be/src/runtime/export_sink.cpp            | 9 +++++++--
 be/src/runtime/initial_reservations.cc    | 2 +-
 be/src/runtime/load_channel.cpp           | 3 ++-
 be/src/runtime/load_channel_mgr.cpp       | 2 +-
 be/src/runtime/memory_scratch_sink.cpp    | 4 +++-
 be/src/runtime/mysql_table_sink.cpp       | 4 +++-
 be/src/runtime/odbc_table_sink.cpp        | 4 +++-
 be/src/runtime/plan_fragment_executor.cpp | 6 ++++--
 be/src/runtime/result_sink.cpp            | 2 ++
 be/src/runtime/runtime_state.cpp          | 6 +++---
 be/src/runtime/tablets_channel.cpp        | 2 +-
 be/test/runtime/test_env.cc               | 6 +++---
 33 files changed, 78 insertions(+), 43 deletions(-)

diff --git a/be/src/exec/base_scanner.cpp b/be/src/exec/base_scanner.cpp
index 2c7c592..a567b3b 100644
--- a/be/src/exec/base_scanner.cpp
+++ b/be/src/exec/base_scanner.cpp
@@ -41,7 +41,8 @@ BaseScanner::BaseScanner(RuntimeState* state, RuntimeProfile* profile,
           _mem_tracker(new MemTracker()),
 #else
           _mem_tracker(
-                  MemTracker::CreateTracker(-1, "Broker Scanner", state->instance_mem_tracker())),
+                  MemTracker::CreateTracker(-1, "BaseScanner:" + std::to_string(state->load_job_id()),
+                                            state->instance_mem_tracker())),
 #endif
           _mem_pool(_mem_tracker.get()),
           _dest_tuple_desc(nullptr),
diff --git a/be/src/exec/data_sink.cpp b/be/src/exec/data_sink.cpp
index 84c46ab..ef85dbc 100644
--- a/be/src/exec/data_sink.cpp
+++ b/be/src/exec/data_sink.cpp
@@ -159,8 +159,7 @@ Status DataSink::init(const TDataSink& thrift_sink) {
 
 Status DataSink::prepare(RuntimeState* state) {
     _expr_mem_tracker = MemTracker::CreateTracker(
-            // TODO(yingchun): use subclass' name
-            -1, std::string("DataSink:") + std::to_string(state->load_job_id()),
+            -1, _name + ":Expr:" + std::to_string(state->load_job_id()),
             state->instance_mem_tracker());
     return Status::OK();
 }
diff --git a/be/src/exec/data_sink.h b/be/src/exec/data_sink.h
index daf06ed..e4c6729 100644
--- a/be/src/exec/data_sink.h
+++ b/be/src/exec/data_sink.h
@@ -88,6 +88,7 @@ protected:
     // close().
     bool _closed;
     std::shared_ptr<MemTracker> _expr_mem_tracker;
+    std::string _name;
 
     // Maybe this will be transferred to BufferControlBlock.
     std::shared_ptr<QueryStatistics> _query_statistics;
diff --git a/be/src/exec/es_http_scanner.cpp b/be/src/exec/es_http_scanner.cpp
index 9306baa..fe3d67b 100644
--- a/be/src/exec/es_http_scanner.cpp
+++ b/be/src/exec/es_http_scanner.cpp
@@ -47,7 +47,8 @@ EsHttpScanner::EsHttpScanner(RuntimeState* state, RuntimeProfile* profile, Tuple
           _mem_tracker(new MemTracker()),
 #else
           _mem_tracker(
-                  MemTracker::CreateTracker(-1, "EsHttp Scanner", state->instance_mem_tracker())),
+                  MemTracker::CreateTracker(-1, "EsHttpScanner:" + std::to_string(state->load_job_id()),
+                                            state->instance_mem_tracker())),
 #endif
           _mem_pool(_mem_tracker.get()),
           _tuple_desc(nullptr),
diff --git a/be/src/exec/exec_node.cpp b/be/src/exec/exec_node.cpp
index 245d42b..298e707 100644
--- a/be/src/exec/exec_node.cpp
+++ b/be/src/exec/exec_node.cpp
@@ -173,9 +173,9 @@ Status ExecNode::prepare(RuntimeState* state) {
                                  runtime_profile()->total_time_counter()),
             "");
     _mem_tracker = MemTracker::CreateTracker(_runtime_profile.get(), -1,
-                                             "ExecNode " + _runtime_profile->name(),
+                                             "ExecNode:" + _runtime_profile->name(),
                                              state->instance_mem_tracker());
-    _expr_mem_tracker = MemTracker::CreateTracker(-1, "ExecNode Exprs", _mem_tracker);
+    _expr_mem_tracker = MemTracker::CreateTracker(-1, "ExecNode:Exprs:" + _runtime_profile->name(), _mem_tracker);
     _expr_mem_pool.reset(new MemPool(_expr_mem_tracker.get()));
     // TODO chenhao
     RETURN_IF_ERROR(Expr::prepare(_conjunct_ctxs, state, row_desc(), expr_mem_tracker()));
diff --git a/be/src/exec/olap_scanner.cpp b/be/src/exec/olap_scanner.cpp
index e3fc004..8d9b8a4 100644
--- a/be/src/exec/olap_scanner.cpp
+++ b/be/src/exec/olap_scanner.cpp
@@ -247,7 +247,9 @@ Status OlapScanner::get_batch(RuntimeState* state, RowBatch* batch, bool* eof) {
     bzero(tuple_buf, state->batch_size() * _tuple_desc->byte_size());
     Tuple* tuple = reinterpret_cast<Tuple*>(tuple_buf);
 
-    auto tracker = MemTracker::CreateTracker(state->fragment_mem_tracker()->limit(), "OlapScanner");
+    auto tracker = MemTracker::CreateTracker(state->fragment_mem_tracker()->limit(),
+                                             "OlapScanner:" + print_id(state->query_id()),
+                                             state->fragment_mem_tracker());
     std::unique_ptr<MemPool> mem_pool(new MemPool(tracker.get()));
 
     int64_t raw_rows_threshold = raw_rows_read() + config::doris_scanner_row_num;
diff --git a/be/src/exec/tablet_sink.cpp b/be/src/exec/tablet_sink.cpp
index 7f51526..d08d291 100644
--- a/be/src/exec/tablet_sink.cpp
+++ b/be/src/exec/tablet_sink.cpp
@@ -447,6 +447,7 @@ OlapTableSink::OlapTableSink(ObjectPool* pool, const RowDescriptor& row_desc,
     if (!texprs.empty()) {
         *status = Expr::create_expr_trees(_pool, texprs, &_output_expr_ctxs);
     }
+    _name = "OlapTableSink";
 }
 
 OlapTableSink::~OlapTableSink() {
@@ -491,7 +492,8 @@ Status OlapTableSink::prepare(RuntimeState* state) {
 
     // profile must add to state's object pool
     _profile = state->obj_pool()->add(new RuntimeProfile("OlapTableSink"));
-    _mem_tracker = MemTracker::CreateTracker(-1, "OlapTableSink", state->instance_mem_tracker());
+    _mem_tracker = MemTracker::CreateTracker(-1, "OlapTableSink:" + std::to_string(state->load_job_id()),
+                                             state->instance_mem_tracker());
 
     SCOPED_TIMER(_profile->total_time_counter());
 
diff --git a/be/src/http/action/compaction_action.cpp b/be/src/http/action/compaction_action.cpp
index 45050a2..c8f280c 100644
--- a/be/src/http/action/compaction_action.cpp
+++ b/be/src/http/action/compaction_action.cpp
@@ -214,7 +214,7 @@ OLAPStatus CompactionAction::_execute_compaction_callback(TabletSharedPtr tablet
                                                           const std::string& compaction_type) {
     OLAPStatus status = OLAP_SUCCESS;
     if (compaction_type == PARAM_COMPACTION_BASE) {
-        std::string tracker_label = "base compaction " + std::to_string(syscall(__NR_gettid));
+        std::string tracker_label = "CompactionAction:BaseCompaction:" + std::to_string(syscall(__NR_gettid));
         BaseCompaction base_compaction(tablet, tracker_label, _compaction_mem_tracker);
         OLAPStatus res = base_compaction.compact();
         if (res != OLAP_SUCCESS) {
@@ -226,7 +226,7 @@ OLAPStatus CompactionAction::_execute_compaction_callback(TabletSharedPtr tablet
         }
         status = res;
     } else if (compaction_type == PARAM_COMPACTION_CUMULATIVE) {
-        std::string tracker_label = "cumulative compaction " + std::to_string(syscall(__NR_gettid));
+        std::string tracker_label = "CompactionAction:CumulativeCompaction:" + std::to_string(syscall(__NR_gettid));
         CumulativeCompaction cumulative_compaction(tablet, tracker_label, _compaction_mem_tracker);
 
         OLAPStatus res = cumulative_compaction.compact();
diff --git a/be/src/http/action/compaction_action.h b/be/src/http/action/compaction_action.h
index 1c67113..66ab873 100644
--- a/be/src/http/action/compaction_action.h
+++ b/be/src/http/action/compaction_action.h
@@ -42,7 +42,7 @@ public:
     CompactionAction(CompactionActionType type)
             : _type(type),
               _compaction_mem_tracker(
-                      MemTracker::CreateTracker(-1, "manual compaction mem tracker(unlimited)")) {}
+                      MemTracker::CreateTracker(-1, "CompactionAction")) {}
 
     virtual ~CompactionAction() {}
 
diff --git a/be/src/olap/compaction.cpp b/be/src/olap/compaction.cpp
index 719f06b..35dcbb8 100644
--- a/be/src/olap/compaction.cpp
+++ b/be/src/olap/compaction.cpp
@@ -29,7 +29,7 @@ namespace doris {
 Compaction::Compaction(TabletSharedPtr tablet, const std::string& label,
                        const std::shared_ptr<MemTracker>& parent_tracker)
         : _mem_tracker(MemTracker::CreateTracker(-1, label, parent_tracker)),
-          _readers_tracker(MemTracker::CreateTracker(-1, "readers tracker", _mem_tracker)),
+          _readers_tracker(MemTracker::CreateTracker(-1, "Compaction:RowsetReaders:" + std::to_string(tablet->tablet_id()), _mem_tracker)),
           _tablet(tablet),
           _input_rowsets_size(0),
           _input_row_num(0),
@@ -164,7 +164,11 @@ OLAPStatus Compaction::construct_output_rowset_writer() {
 OLAPStatus Compaction::construct_input_rowset_readers() {
     for (auto& rowset : _input_rowsets) {
         RowsetReaderSharedPtr rs_reader;
-        RETURN_NOT_OK(rowset->create_reader(_readers_tracker, &rs_reader));
+        RETURN_NOT_OK(rowset->create_reader(
+                MemTracker::CreateTracker(
+                        -1, "Compaction:RowsetReader:" + rowset->rowset_id().to_string(),
+                        _readers_tracker),
+                &rs_reader));
         _input_rs_readers.push_back(std::move(rs_reader));
     }
     return OLAP_SUCCESS;
diff --git a/be/src/olap/delta_writer.cpp b/be/src/olap/delta_writer.cpp
index ee80db1..7aa5828 100644
--- a/be/src/olap/delta_writer.cpp
+++ b/be/src/olap/delta_writer.cpp
@@ -44,7 +44,7 @@ DeltaWriter::DeltaWriter(WriteRequest* req, const std::shared_ptr<MemTracker>& p
           _tablet_schema(nullptr),
           _delta_written_success(false),
           _storage_engine(storage_engine),
-          _mem_tracker(MemTracker::CreateTracker(-1, "DeltaWriter", parent)) {}
+          _parent_mem_tracker(parent) {}
 
 DeltaWriter::~DeltaWriter() {
     if (_is_init && !_delta_written_success) {
@@ -101,6 +101,8 @@ OLAPStatus DeltaWriter::init() {
         return OLAP_ERR_TABLE_NOT_FOUND;
     }
 
+    _mem_tracker = MemTracker::CreateTracker(-1, "DeltaWriter:" + std::to_string(_tablet->tablet_id()),
+                                             _parent_mem_tracker);
     // check tablet version number
     if (_tablet->version_count() > config::max_tablet_version_num) {
         LOG(WARNING) << "failed to init delta writer. version count: " << _tablet->version_count()
diff --git a/be/src/olap/delta_writer.h b/be/src/olap/delta_writer.h
index 9cf59eb..01c1b0d 100644
--- a/be/src/olap/delta_writer.h
+++ b/be/src/olap/delta_writer.h
@@ -112,6 +112,7 @@ private:
 
     StorageEngine* _storage_engine;
     std::unique_ptr<FlushToken> _flush_token;
+    std::shared_ptr<MemTracker> _parent_mem_tracker;
     std::shared_ptr<MemTracker> _mem_tracker;
 
     SpinLock _lock;
diff --git a/be/src/olap/fs/file_block_manager.cpp b/be/src/olap/fs/file_block_manager.cpp
index 37056f4..68ff482 100644
--- a/be/src/olap/fs/file_block_manager.cpp
+++ b/be/src/olap/fs/file_block_manager.cpp
@@ -369,7 +369,7 @@ FileBlockManager::FileBlockManager(Env* env, BlockManagerOptions opts)
         : _env(DCHECK_NOTNULL(env)),
           _opts(std::move(opts)),
           _mem_tracker(
-                  MemTracker::CreateTracker(-1, "file_block_manager", _opts.parent_mem_tracker)) {
+                  MemTracker::CreateTracker(-1, "FileBlockManager", _opts.parent_mem_tracker)) {
     if (_opts.enable_metric) {
         _metrics.reset(new internal::BlockManagerMetrics());
     }
diff --git a/be/src/olap/memtable.cpp b/be/src/olap/memtable.cpp
index f728af5..4ee8b4a 100644
--- a/be/src/olap/memtable.cpp
+++ b/be/src/olap/memtable.cpp
@@ -40,7 +40,7 @@ MemTable::MemTable(int64_t tablet_id, Schema* schema, const TabletSchema* tablet
           _slot_descs(slot_descs),
           _keys_type(keys_type),
           _row_comparator(_schema),
-          _mem_tracker(MemTracker::CreateTracker(-1, "MemTable", parent_tracker)),
+          _mem_tracker(MemTracker::CreateTracker(-1, "MemTable:" + std::to_string(tablet_id), parent_tracker)),
           _buffer_mem_pool(new MemPool(_mem_tracker.get())),
           _table_mem_pool(new MemPool(_mem_tracker.get())),
           _schema_size(_schema->schema_size()),
diff --git a/be/src/olap/rowset/segment_reader.cpp b/be/src/olap/rowset/segment_reader.cpp
index 114b704..38d3d1f 100644
--- a/be/src/olap/rowset/segment_reader.cpp
+++ b/be/src/olap/rowset/segment_reader.cpp
@@ -58,7 +58,7 @@ SegmentReader::SegmentReader(const std::string file, SegmentGroup* segment_group
           _is_using_mmap(false),
           _is_data_loaded(false),
           _buffer_size(0),
-          _tracker(MemTracker::CreateTracker(-1, "SegmentReader", parent_tracker)),
+          _tracker(MemTracker::CreateTracker(-1, "SegmentReader:" + file, parent_tracker)),
           _mem_pool(new MemPool(_tracker.get())),
           _shared_buffer(NULL),
           _lru_cache(lru_cache),
diff --git a/be/src/olap/storage_engine.cpp b/be/src/olap/storage_engine.cpp
index 21d86ea..7fe2f85 100644
--- a/be/src/olap/storage_engine.cpp
+++ b/be/src/olap/storage_engine.cpp
@@ -113,8 +113,7 @@ StorageEngine::StorageEngine(const EngineOptions& options)
           _is_all_cluster_id_exist(true),
           _index_stream_lru_cache(NULL),
           _file_cache(nullptr),
-          _compaction_mem_tracker(
-                  MemTracker::CreateTracker(-1, "compaction mem tracker(unlimited)")),
+          _compaction_mem_tracker(MemTracker::CreateTracker(-1, "Compaction")),
           _stop_background_threads_latch(1),
           _tablet_manager(new TabletManager(config::tablet_map_shard_size)),
           _txn_manager(new TxnManager(config::txn_map_shard_size, config::txn_shard_size)),
@@ -985,14 +984,14 @@ bool StorageEngine::check_rowset_id_in_unused_rowsets(const RowsetId& rowset_id)
 
 void StorageEngine::create_cumulative_compaction(
         TabletSharedPtr best_tablet, std::shared_ptr<CumulativeCompaction>& cumulative_compaction) {
-    std::string tracker_label = "cumulative compaction " + std::to_string(syscall(__NR_gettid));
+    std::string tracker_label = "StorageEngine:CumulativeCompaction:" + std::to_string(syscall(__NR_gettid));
     cumulative_compaction.reset(
             new CumulativeCompaction(best_tablet, tracker_label, _compaction_mem_tracker));
 }
 
 void StorageEngine::create_base_compaction(TabletSharedPtr best_tablet,
                                            std::shared_ptr<BaseCompaction>& base_compaction) {
-    std::string tracker_label = "base compaction " + std::to_string(syscall(__NR_gettid));
+    std::string tracker_label = "StorageEngine:BaseCompaction:" + std::to_string(syscall(__NR_gettid));
     base_compaction.reset(new BaseCompaction(best_tablet, tracker_label, _compaction_mem_tracker));
 }
 
diff --git a/be/src/runtime/buffered_block_mgr2.cc b/be/src/runtime/buffered_block_mgr2.cc
index 3e60664..8ac9451 100644
--- a/be/src/runtime/buffered_block_mgr2.cc
+++ b/be/src/runtime/buffered_block_mgr2.cc
@@ -1288,7 +1288,7 @@ void BufferedBlockMgr2::init(DiskIoMgr* io_mgr, RuntimeProfile* parent_profile,
     // Create a new mem_tracker and allocate buffers.
     // _mem_tracker.reset(new MemTracker(
     //             profile(), mem_limit, -1, "Block Manager", parent_tracker));
-    _mem_tracker = MemTracker::CreateTracker(mem_limit, "Block Manager2", parent_tracker);
+    _mem_tracker = MemTracker::CreateTracker(mem_limit, "BufferedBlockMgr2", parent_tracker);
 
     _initialized = true;
 }
diff --git a/be/src/runtime/data_spliter.cpp b/be/src/runtime/data_spliter.cpp
index c65e567..9205eb8 100644
--- a/be/src/runtime/data_spliter.cpp
+++ b/be/src/runtime/data_spliter.cpp
@@ -40,7 +40,9 @@
 namespace doris {
 
 DataSpliter::DataSpliter(const RowDescriptor& row_desc)
-        : _obj_pool(new ObjectPool()), _row_desc(row_desc) {}
+        : _obj_pool(new ObjectPool()), _row_desc(row_desc) {
+    _name = "DataSpliter";
+}
 
 DataSpliter::~DataSpliter() {}
 
diff --git a/be/src/runtime/data_stream_recvr.cc b/be/src/runtime/data_stream_recvr.cc
index b514a88..eb671f1 100644
--- a/be/src/runtime/data_stream_recvr.cc
+++ b/be/src/runtime/data_stream_recvr.cc
@@ -32,6 +32,7 @@
 #include "util/debug_util.h"
 #include "util/logging.h"
 #include "util/runtime_profile.h"
+#include "util/uid_util.h"
 
 using std::list;
 using std::vector;
@@ -358,7 +359,9 @@ DataStreamRecvr::DataStreamRecvr(
           _num_buffered_bytes(0),
           _profile(profile),
           _sub_plan_query_statistics_recvr(sub_plan_query_statistics_recvr) {
-    _mem_tracker = MemTracker::CreateTracker(_profile, -1, "DataStreamRecvr", parent_tracker);
+    _mem_tracker = MemTracker::CreateTracker(_profile, -1,
+                                             "DataStreamRecvr:" + print_id(_fragment_instance_id),
+                                             parent_tracker);
 
     // Create one queue per sender if is_merging is true.
     int num_queues = is_merging ? num_senders : 1;
diff --git a/be/src/runtime/data_stream_sender.cpp b/be/src/runtime/data_stream_sender.cpp
index 3ebb906..7f23ffd 100644
--- a/be/src/runtime/data_stream_sender.cpp
+++ b/be/src/runtime/data_stream_sender.cpp
@@ -359,6 +359,7 @@ DataStreamSender::DataStreamSender(ObjectPool* pool, int sender_id, const RowDes
                     _channel_shared_ptrs[fragment_id_to_channel_index[fragment_instance_id.lo]]);
         }
     }
+    _name = "DataStreamSender";
 }
 
 // We use the ParttitionRange to compare here. It should not be a member function of PartitionInfo
@@ -415,7 +416,8 @@ Status DataStreamSender::prepare(RuntimeState* state) {
           << "])";
     _profile = _pool->add(new RuntimeProfile(title.str()));
     SCOPED_TIMER(_profile->total_time_counter());
-    _mem_tracker = MemTracker::CreateTracker(_profile, -1, "DataStreamSender",
+    _mem_tracker = MemTracker::CreateTracker(_profile, -1,
+                                             "DataStreamSender:" + print_id(state->fragment_instance_id()),
                                              state->instance_mem_tracker());
 
     if (_part_type == TPartitionType::UNPARTITIONED || _part_type == TPartitionType::RANDOM) {
diff --git a/be/src/runtime/exec_env_init.cpp b/be/src/runtime/exec_env_init.cpp
index d3a8bf4..6964ccc 100644
--- a/be/src/runtime/exec_env_init.cpp
+++ b/be/src/runtime/exec_env_init.cpp
@@ -180,7 +180,7 @@ Status ExecEnv::_init_mem_tracker() {
     }
 
     _mem_tracker =
-            MemTracker::CreateTracker(bytes_limit, "ExecEnv root", MemTracker::GetRootTracker());
+            MemTracker::CreateTracker(bytes_limit, "ExecEnv", MemTracker::GetRootTracker());
 
     LOG(INFO) << "Using global memory limit: " << PrettyPrinter::print(bytes_limit, TUnit::BYTES);
     RETURN_IF_ERROR(_disk_io_mgr->init(_mem_tracker));
diff --git a/be/src/runtime/export_sink.cpp b/be/src/runtime/export_sink.cpp
index 253fe74..0e88bb4 100644
--- a/be/src/runtime/export_sink.cpp
+++ b/be/src/runtime/export_sink.cpp
@@ -44,7 +44,9 @@ ExportSink::ExportSink(ObjectPool* pool, const RowDescriptor& row_desc,
           _t_output_expr(t_exprs),
           _bytes_written_counter(nullptr),
           _rows_written_counter(nullptr),
-          _write_timer(nullptr) {}
+          _write_timer(nullptr) {
+    _name = "ExportSink";
+}
 
 ExportSink::~ExportSink() {}
 
@@ -68,7 +70,10 @@ Status ExportSink::prepare(RuntimeState* state) {
     _profile = state->obj_pool()->add(new RuntimeProfile(title.str()));
     SCOPED_TIMER(_profile->total_time_counter());
 
-    _mem_tracker = MemTracker::CreateTracker(-1, "ExportSink", state->instance_mem_tracker());
+    _mem_tracker = MemTracker::CreateTracker(
+            -1,
+            "ExportSink:" + print_id(state->fragment_instance_id()),
+            state->instance_mem_tracker());
 
     // Prepare the exprs to run.
     RETURN_IF_ERROR(Expr::prepare(_output_expr_ctxs, state, _row_desc, _mem_tracker));
diff --git a/be/src/runtime/initial_reservations.cc b/be/src/runtime/initial_reservations.cc
index 9232181..bd52dcb 100644
--- a/be/src/runtime/initial_reservations.cc
+++ b/be/src/runtime/initial_reservations.cc
@@ -37,7 +37,7 @@ InitialReservations::InitialReservations(ObjectPool* obj_pool,
                                          ReservationTracker* query_reservation,
                                          std::shared_ptr<MemTracker> query_mem_tracker,
                                          int64_t initial_reservation_total_claims)
-        : initial_reservation_mem_tracker_(MemTracker::CreateTracker(-1, "Unclaimed reservations",
+        : initial_reservation_mem_tracker_(MemTracker::CreateTracker(-1, "InitialReservations",
                                                                      query_mem_tracker, false)),
           remaining_initial_reservation_claims_(initial_reservation_total_claims) {
     initial_reservations_.InitChildTracker(nullptr, query_reservation,
diff --git a/be/src/runtime/load_channel.cpp b/be/src/runtime/load_channel.cpp
index adb457d..30c2f2f 100644
--- a/be/src/runtime/load_channel.cpp
+++ b/be/src/runtime/load_channel.cpp
@@ -26,7 +26,8 @@ namespace doris {
 LoadChannel::LoadChannel(const UniqueId& load_id, int64_t mem_limit, int64_t timeout_s,
                          const std::shared_ptr<MemTracker>& mem_tracker)
         : _load_id(load_id), _timeout_s(timeout_s) {
-    _mem_tracker = MemTracker::CreateTracker(mem_limit, _load_id.to_string(), mem_tracker);
+    _mem_tracker = MemTracker::CreateTracker(
+            mem_limit, "LoadChannel:" + _load_id.to_string(), mem_tracker);
     // _last_updated_time should be set before being inserted to
     // _load_channels in load_channel_mgr, or it may be erased
     // immediately by gc thread.
diff --git a/be/src/runtime/load_channel_mgr.cpp b/be/src/runtime/load_channel_mgr.cpp
index 2f320d0..74e21d0 100644
--- a/be/src/runtime/load_channel_mgr.cpp
+++ b/be/src/runtime/load_channel_mgr.cpp
@@ -82,7 +82,7 @@ LoadChannelMgr::~LoadChannelMgr() {
 
 Status LoadChannelMgr::init(int64_t process_mem_limit) {
     int64_t load_mem_limit = calc_process_max_load_memory(process_mem_limit);
-    _mem_tracker = MemTracker::CreateTracker(load_mem_limit, "load channel mgr");
+    _mem_tracker = MemTracker::CreateTracker(load_mem_limit, "LoadChannelMgr");
     RETURN_IF_ERROR(_start_bg_worker());
     return Status::OK();
 }
diff --git a/be/src/runtime/memory_scratch_sink.cpp b/be/src/runtime/memory_scratch_sink.cpp
index 5c3c2c8..ab1d0c1 100644
--- a/be/src/runtime/memory_scratch_sink.cpp
+++ b/be/src/runtime/memory_scratch_sink.cpp
@@ -41,7 +41,9 @@ namespace doris {
 MemoryScratchSink::MemoryScratchSink(const RowDescriptor& row_desc,
                                      const std::vector<TExpr>& t_output_expr,
                                      const TMemoryScratchSink& sink)
-        : _row_desc(row_desc), _t_output_expr(t_output_expr) {}
+        : _row_desc(row_desc), _t_output_expr(t_output_expr) {
+    _name = "MemoryScratchSink";
+}
 
 MemoryScratchSink::~MemoryScratchSink() {}
 
diff --git a/be/src/runtime/mysql_table_sink.cpp b/be/src/runtime/mysql_table_sink.cpp
index bd22c54..cb7911d 100644
--- a/be/src/runtime/mysql_table_sink.cpp
+++ b/be/src/runtime/mysql_table_sink.cpp
@@ -33,7 +33,9 @@ MysqlTableSink::MysqlTableSink(ObjectPool* pool, const RowDescriptor& row_desc,
         : _pool(pool),
           _row_desc(row_desc),
           _t_output_expr(t_exprs),
-          _mem_tracker(MemTracker::CreateTracker(-1, "MysqlTableSink")) {}
+          _mem_tracker(MemTracker::CreateTracker(-1, "MysqlTableSink")) {
+    _name = "MysqlTableSink";
+}
 
 MysqlTableSink::~MysqlTableSink() {}
 
diff --git a/be/src/runtime/odbc_table_sink.cpp b/be/src/runtime/odbc_table_sink.cpp
index e02d978..0bcee5f 100644
--- a/be/src/runtime/odbc_table_sink.cpp
+++ b/be/src/runtime/odbc_table_sink.cpp
@@ -32,7 +32,9 @@ OdbcTableSink::OdbcTableSink(ObjectPool* pool, const RowDescriptor& row_desc,
         : _pool(pool),
           _row_desc(row_desc),
           _t_output_expr(t_exprs),
-          _mem_tracker(MemTracker::CreateTracker(-1, "OdbcTableSink")) {}
+          _mem_tracker(MemTracker::CreateTracker(-1, "OdbcTableSink")) {
+    _name = "OdbcTableSink";
+}
 
 OdbcTableSink::~OdbcTableSink() {}
 
diff --git a/be/src/runtime/plan_fragment_executor.cpp b/be/src/runtime/plan_fragment_executor.cpp
index a001848..fc1e54c 100644
--- a/be/src/runtime/plan_fragment_executor.cpp
+++ b/be/src/runtime/plan_fragment_executor.cpp
@@ -131,8 +131,10 @@ Status PlanFragmentExecutor::prepare(const TExecPlanFragmentParams& request,
         bytes_limit = _exec_env->process_mem_tracker()->limit();
     }
     // NOTE: this MemTracker only for olap
-    _mem_tracker = MemTracker::CreateTracker(bytes_limit, "fragment mem-limit",
-                                             _exec_env->process_mem_tracker());
+    _mem_tracker = MemTracker::CreateTracker(
+            bytes_limit,
+            "PlanFragmentExecutor:" + print_id(_query_id) + ":" + print_id(params.fragment_instance_id),
+            _exec_env->process_mem_tracker());
     _runtime_state->set_fragment_mem_tracker(_mem_tracker);
 
     LOG(INFO) << "Using query memory limit: " << PrettyPrinter::print(bytes_limit, TUnit::BYTES);
diff --git a/be/src/runtime/result_sink.cpp b/be/src/runtime/result_sink.cpp
index a289ab0..e536fc5 100644
--- a/be/src/runtime/result_sink.cpp
+++ b/be/src/runtime/result_sink.cpp
@@ -44,6 +44,8 @@ ResultSink::ResultSink(const RowDescriptor& row_desc, const std::vector<TExpr>&
         CHECK(sink.__isset.file_options);
         _file_opts.reset(new ResultFileOptions(sink.file_options));
     }
+
+    _name = "ResultSink";
 }
 
 ResultSink::~ResultSink() {}
diff --git a/be/src/runtime/runtime_state.cpp b/be/src/runtime/runtime_state.cpp
index 029767d..8b7104f 100644
--- a/be/src/runtime/runtime_state.cpp
+++ b/be/src/runtime/runtime_state.cpp
@@ -213,10 +213,10 @@ Status RuntimeState::init_mem_trackers(const TUniqueId& query_id) {
     mem_tracker_counter->set(bytes_limit);
 
     _query_mem_tracker = MemTracker::CreateTracker(
-            bytes_limit, std::string("RuntimeState: query ") + runtime_profile()->name(),
+            bytes_limit, "RuntimeState:query:" + print_id(query_id),
             _exec_env->process_mem_tracker());
     _instance_mem_tracker = MemTracker::CreateTracker(
-            &_profile, -1, std::string("RuntimeState: instance ") + runtime_profile()->name(),
+            &_profile, -1, "RuntimeState:instance:" + print_id(query_id),
             _query_mem_tracker);
 
     /*
@@ -245,7 +245,7 @@ Status RuntimeState::init_mem_trackers(const TUniqueId& query_id) {
 }
 
 Status RuntimeState::init_instance_mem_tracker() {
-    _instance_mem_tracker = MemTracker::CreateTracker(-1);
+    _instance_mem_tracker = MemTracker::CreateTracker(-1, "RuntimeState");
     return Status::OK();
 }
 
diff --git a/be/src/runtime/tablets_channel.cpp b/be/src/runtime/tablets_channel.cpp
index b2a32c0..ce7e36a 100644
--- a/be/src/runtime/tablets_channel.cpp
+++ b/be/src/runtime/tablets_channel.cpp
@@ -34,7 +34,7 @@ std::atomic<uint64_t> TabletsChannel::_s_tablet_writer_count;
 TabletsChannel::TabletsChannel(const TabletsChannelKey& key,
                                const std::shared_ptr<MemTracker>& mem_tracker)
         : _key(key), _state(kInitialized), _closed_senders(64) {
-    _mem_tracker = MemTracker::CreateTracker(-1, "tablets channel", mem_tracker);
+    _mem_tracker = MemTracker::CreateTracker(-1, "TabletsChannel:" + key.to_string(), mem_tracker);
     static std::once_flag once_flag;
     std::call_once(once_flag, [] {
         REGISTER_HOOK_METRIC(tablet_writer_count, [&]() { return _s_tablet_writer_count.load(); });
diff --git a/be/test/runtime/test_env.cc b/be/test/runtime/test_env.cc
index c059436..f724644 100644
--- a/be/test/runtime/test_env.cc
+++ b/be/test/runtime/test_env.cc
@@ -31,13 +31,13 @@
 namespace doris {
 
 TestEnv::TestEnv()
-        : _block_mgr_parent_tracker(MemTracker::CreateTracker(-1, "block mgr parent")),
-          _io_mgr_tracker(MemTracker::CreateTracker(-1, "io mgr")) {
+        : _block_mgr_parent_tracker(MemTracker::CreateTracker(-1, "BufferedBlockMgr2")),
+          _io_mgr_tracker(MemTracker::CreateTracker(-1, "DiskIoMgr")) {
     // Some code will use ExecEnv::GetInstance(), so init the global ExecEnv singleton
     _exec_env = ExecEnv::GetInstance();
     _exec_env->_thread_mgr = new ThreadResourceMgr(2);
     _exec_env->_buffer_reservation = new ReservationTracker();
-    _exec_env->_mem_tracker = MemTracker::CreateTracker(-1, "TestEnv root");
+    _exec_env->_mem_tracker = MemTracker::CreateTracker(-1, "TestEnv");
     _exec_env->_disk_io_mgr = new DiskIoMgr(1, 1, 1, 10);
     _exec_env->disk_io_mgr()->init(_io_mgr_tracker);
     _exec_env->_thread_pool = new PriorityThreadPool(1, 16);


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org