You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by yi...@apache.org on 2022/10/13 01:11:29 UTC

[doris] branch master updated: [enhancement](memtracker) Print query memory usage log every second when `memory_verbose_track` is enabled (#13302)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new c494ca0ed4 [enhancement](memtracker) Print query memory usage log every second when `memory_verbose_track` is enabled (#13302)
c494ca0ed4 is described below

commit c494ca0ed480ecc16af85bf541ffad0f4fae8704
Author: Xinyi Zou <zo...@gmail.com>
AuthorDate: Thu Oct 13 09:11:23 2022 +0800

    [enhancement](memtracker) Print query memory usage log every second when `memory_verbose_track` is enabled (#13302)
---
 be/src/runtime/memory/mem_tracker_task_pool.cpp | 3 +++
 be/src/runtime/memory/thread_mem_tracker_mgr.h  | 1 +
 be/src/runtime/thread_context.h                 | 6 +++++-
 be/src/service/doris_main.cpp                   | 4 ++++
 4 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/be/src/runtime/memory/mem_tracker_task_pool.cpp b/be/src/runtime/memory/mem_tracker_task_pool.cpp
index 0eff6c7460..04f2388515 100644
--- a/be/src/runtime/memory/mem_tracker_task_pool.cpp
+++ b/be/src/runtime/memory/mem_tracker_task_pool.cpp
@@ -108,6 +108,9 @@ void MemTrackerTaskPool::logout_task_mem_tracker() {
                     PrettyPrinter::print(it->second->consumption(), TUnit::BYTES),
                     PrettyPrinter::print(it->second->peak_consumption(), TUnit::BYTES));
             expired_task_ids.emplace_back(it->first);
+        } else if (config::memory_verbose_track) {
+            it->second->print_log_usage("query routine");
+            it->second->enable_print_log_usage();
         }
     }
     for (auto tid : expired_task_ids) {
diff --git a/be/src/runtime/memory/thread_mem_tracker_mgr.h b/be/src/runtime/memory/thread_mem_tracker_mgr.h
index 4c9099528d..9ecf3d5d4f 100644
--- a/be/src/runtime/memory/thread_mem_tracker_mgr.h
+++ b/be/src/runtime/memory/thread_mem_tracker_mgr.h
@@ -96,6 +96,7 @@ public:
         return _limiter_tracker_raw;
     }
 
+    bool check_limit() { return _check_limit; }
     void set_check_limit(bool check_limit) { _check_limit = check_limit; }
     void set_check_attach(bool check_attach) { _check_attach = check_attach; }
 
diff --git a/be/src/runtime/thread_context.h b/be/src/runtime/thread_context.h
index 46b2e86d44..1e4b158eec 100644
--- a/be/src/runtime/thread_context.h
+++ b/be/src/runtime/thread_context.h
@@ -241,12 +241,16 @@ private:
 class StopCheckThreadMemTrackerLimit {
 public:
     explicit StopCheckThreadMemTrackerLimit() {
+        _pre = thread_context()->_thread_mem_tracker_mgr->check_limit();
         thread_context()->_thread_mem_tracker_mgr->set_check_limit(false);
     }
 
     ~StopCheckThreadMemTrackerLimit() {
-        thread_context()->_thread_mem_tracker_mgr->set_check_limit(true);
+        thread_context()->_thread_mem_tracker_mgr->set_check_limit(_pre);
     }
+
+private:
+    bool _pre;
 };
 
 // The following macros are used to fix the tracking accuracy of caches etc.
diff --git a/be/src/service/doris_main.cpp b/be/src/service/doris_main.cpp
index 9b357fe579..4a99801ef8 100644
--- a/be/src/service/doris_main.cpp
+++ b/be/src/service/doris_main.cpp
@@ -513,6 +513,10 @@ int main(int argc, char** argv) {
         // The process tracker print log usage interval is 1s to avoid a large number of tasks being
         // canceled when the process exceeds the mem limit, resulting in too many duplicate logs.
         doris::ExecEnv::GetInstance()->process_mem_tracker()->enable_print_log_usage();
+        if (doris::config::memory_verbose_track) {
+            doris::ExecEnv::GetInstance()->process_mem_tracker()->print_log_usage("main routine");
+            doris::ExecEnv::GetInstance()->process_mem_tracker()->enable_print_log_usage();
+        }
         sleep(1);
     }
 


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