From 18f941a6ba058dab0b74f664471b6909325fd074 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sat, 19 Oct 2024 09:34:50 +0800 Subject: [PATCH] [BugFix] fix counter QuerySumMemoryUsage (backport #52023) (#52060) Co-authored-by: Murphy <96611012+murphyatwork@users.noreply.github.com> --- .../com/starrocks/qe/scheduler/QueryRuntimeProfile.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/fe/fe-core/src/main/java/com/starrocks/qe/scheduler/QueryRuntimeProfile.java b/fe/fe-core/src/main/java/com/starrocks/qe/scheduler/QueryRuntimeProfile.java index 8ce4a33c943ce..f44f7429a5571 100644 --- a/fe/fe-core/src/main/java/com/starrocks/qe/scheduler/QueryRuntimeProfile.java +++ b/fe/fe-core/src/main/java/com/starrocks/qe/scheduler/QueryRuntimeProfile.java @@ -401,9 +401,9 @@ public RuntimeProfile buildQueryProfile(boolean needMerge) { newQueryProfile.copyAllInfoStringsFrom(queryProfile, null); newQueryProfile.copyAllCountersFrom(queryProfile); + Map peakMemoryEachBE = Maps.newHashMap(); long sumQueryCumulativeCpuTime = 0; long sumQuerySpillBytes = 0; - long sumQueryPeakMemoryBytes = 0; long maxQueryPeakMemoryUsage = 0; long maxQueryExecutionWallTime = 0; @@ -443,7 +443,8 @@ public RuntimeProfile buildQueryProfile(boolean needMerge) { toBeRemove = instanceProfile.getCounter("QueryPeakMemoryUsage"); if (toBeRemove != null) { maxQueryPeakMemoryUsage = Math.max(maxQueryPeakMemoryUsage, toBeRemove.getValue()); - sumQueryPeakMemoryBytes += toBeRemove.getValue(); + String beAddress = instanceProfile.getInfoString("Address"); + peakMemoryEachBE.merge(beAddress, toBeRemove.getValue(), Long::max); } instanceProfile.removeCounter("QueryPeakMemoryUsage"); @@ -583,7 +584,7 @@ public RuntimeProfile buildQueryProfile(boolean needMerge) { Counter queryPeakMemoryUsage = newQueryProfile.addCounter("QueryPeakMemoryUsagePerNode", TUnit.BYTES, null); queryPeakMemoryUsage.setValue(maxQueryPeakMemoryUsage); Counter sumQueryPeakMemoryUsage = newQueryProfile.addCounter("QuerySumMemoryUsage", TUnit.BYTES, null); - sumQueryPeakMemoryUsage.setValue(sumQueryPeakMemoryBytes); + sumQueryPeakMemoryUsage.setValue(peakMemoryEachBE.values().stream().reduce(0L, Long::sum)); Counter queryExecutionWallTime = newQueryProfile.addCounter("QueryExecutionWallTime", TUnit.TIME_NS, null); queryExecutionWallTime.setValue(maxQueryExecutionWallTime); Counter querySpillBytes = newQueryProfile.addCounter("QuerySpillBytes", TUnit.BYTES, null);