From d56b8b1dadbcf830166ed8a24e6f3b8209c2cb52 Mon Sep 17 00:00:00 2001 From: kruall Date: Fri, 22 Dec 2023 13:43:53 +0300 Subject: [PATCH] Fix metric PotentialMaxThreadCount (#629) Co-authored-by: Aleksandr Kriukov --- ydb/library/actors/core/harmonizer.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ydb/library/actors/core/harmonizer.cpp b/ydb/library/actors/core/harmonizer.cpp index 24eb18ec7d25..733606a7b528 100644 --- a/ydb/library/actors/core/harmonizer.cpp +++ b/ydb/library/actors/core/harmonizer.cpp @@ -467,10 +467,6 @@ void THarmonizer::HarmonizeImpl(ui64 ts) { if (budget < -0.1) { isStarvedPresent = true; } - for (size_t poolIdx = 0; poolIdx < Pools.size(); ++poolIdx) { - TPoolInfo& pool = Pools[poolIdx]; - AtomicSet(pool.PotentialMaxThreadCount, Min(pool.MaxThreadCount, budgetInt)); - } double overbooked = consumed - booked; if (overbooked < 0) { isStarvedPresent = false; @@ -591,6 +587,11 @@ void THarmonizer::HarmonizeImpl(ui64 ts) { pool.SetThreadCount(threadCount - 1); } } + + for (size_t poolIdx = 0; poolIdx < Pools.size(); ++poolIdx) { + TPoolInfo& pool = Pools[poolIdx]; + AtomicSet(pool.PotentialMaxThreadCount, std::min(pool.MaxThreadCount, pool.GetThreadCount() + budgetInt)); + } } void THarmonizer::CalculatePriorityOrder() {