Skip to content

Commit

Permalink
pretty print the size info
Browse files Browse the repository at this point in the history
  • Loading branch information
Doris-Extras committed Oct 1, 2024
1 parent ae335e7 commit 9aa1720
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 10 deletions.
9 changes: 5 additions & 4 deletions be/src/pipeline/pipeline_task.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -392,10 +392,11 @@ Status PipelineTask::execute(bool* eos) {
COUNTER_UPDATE(_memory_reserve_times, 1);
if (!st.ok()) {
COUNTER_UPDATE(_memory_reserve_failed_times, 1);
LOG(INFO) << "query: " << print_id(query_id)
<< ", try to reserve: " << reserve_size << "(sink reserve size:("
<< sink_reserve_size << ")"
<< ", sink name: " << _sink->get_name()
LOG(INFO) << "query: " << print_id(query_id) << ", try to reserve: "
<< PrettyPrinter::print(reserve_size, TUnit::BYTES)
<< "(sink reserve size:("
<< PrettyPrinter::print(sink_reserve_size, TUnit::BYTES)
<< "), sink name: " << _sink->get_name()
<< ", node id: " << _sink->node_id() << " failed: " << st.to_string()
<< ", debug info: " << GlobalMemoryArbitrator::process_mem_log_str();

Expand Down
12 changes: 8 additions & 4 deletions be/src/runtime/memory/thread_mem_tracker_mgr.h
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,8 @@ inline doris::Status ThreadMemTrackerMgr::try_reserve(int64_t size) {
// Only do a check here, do not real reserve. If we could reserve it, it is better, but the logic is too complicated.
if (!doris::GlobalMemoryArbitrator::try_reserve_process_memory(size)) {
return doris::Status::Error<ErrorCode::PROCESS_MEMORY_EXCEEDED>(
"reserve memory failed, size: {}, because {}", size,
"reserve memory failed, size: {}, because {}",
PrettyPrinter::print(size, TUnit::BYTES),
GlobalMemoryArbitrator::process_mem_log_str());
} else {
doris::GlobalMemoryArbitrator::release_process_reserved_memory(size);
Expand All @@ -304,14 +305,16 @@ inline doris::Status ThreadMemTrackerMgr::try_reserve(int64_t size) {
auto err_msg = fmt::format(
"reserve memory failed, size: {}, because query memory exceeded, memory tracker "
"consumption: {}, limit: {}",
size, _limiter_tracker->consumption(), _limiter_tracker->limit());
PrettyPrinter::print(size, TUnit::BYTES),
PrettyPrinter::print(_limiter_tracker->consumption(), TUnit::BYTES),
PrettyPrinter::print(_limiter_tracker->limit(), TUnit::BYTES));
return doris::Status::Error<ErrorCode::QUERY_MEMORY_EXCEEDED>(err_msg);
}
if (wg_ptr) {
if (!wg_ptr->add_wg_refresh_interval_memory_growth(size)) {
auto err_msg = fmt::format(
"reserve memory failed, size: {}, because wg memory exceeded, wg info: {}",
size, wg_ptr->memory_debug_string());
PrettyPrinter::print(size, TUnit::BYTES), wg_ptr->memory_debug_string());
_limiter_tracker->release(size); // rollback
_limiter_tracker->release_reserved(size); // rollback
return doris::Status::Error<ErrorCode::WORKLOAD_GROUP_MEMORY_EXCEEDED>(err_msg);
Expand All @@ -320,7 +323,8 @@ inline doris::Status ThreadMemTrackerMgr::try_reserve(int64_t size) {
if (!doris::GlobalMemoryArbitrator::try_reserve_process_memory(size)) {
auto err_msg =
fmt::format("reserve memory failed, size: {}, because proccess memory exceeded, {}",
size, GlobalMemoryArbitrator::process_mem_log_str());
PrettyPrinter::print(size, TUnit::BYTES),
GlobalMemoryArbitrator::process_mem_log_str());
_limiter_tracker->release(size); // rollback
_limiter_tracker->release_reserved(size); // rollback
if (wg_ptr) {
Expand Down
6 changes: 4 additions & 2 deletions be/src/runtime/workload_group/workload_group_manager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -639,6 +639,8 @@ void WorkloadGroupMgr::update_queries_limit(WorkloadGroupPtr wg, bool enable_har
int64_t expected_query_weighted_mem_limit = 0;
// If the query enable hard limit, then it should not use the soft limit
if (query_ctx->enable_query_slot_hard_limit()) {
LOG(INFO) << "query info " << wg_high_water_mark_except_load << ","
<< query_ctx->get_slot_count() << "," << total_slot_count;
if (total_slot_count < 1) {
LOG(WARNING)
<< "query " << print_id(query_ctx->query_id())
Expand Down Expand Up @@ -673,8 +675,8 @@ void WorkloadGroupMgr::update_queries_limit(WorkloadGroupPtr wg, bool enable_har
query_ctx->set_expected_mem_limit(expected_query_weighted_mem_limit);
}
}
//LOG(INFO) << debug_msg;
LOG_EVERY_T(INFO, 60) << debug_msg;
LOG(INFO) << debug_msg;
//LOG_EVERY_T(INFO, 60) << debug_msg;
}

void WorkloadGroupMgr::stop() {
Expand Down

0 comments on commit 9aa1720

Please sign in to comment.