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 <zouxiny...@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-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org