aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkruall <kruall@ydb.tech>2023-12-22 13:43:53 +0300
committerGitHub <noreply@github.com>2023-12-22 13:43:53 +0300
commitd56b8b1dadbcf830166ed8a24e6f3b8209c2cb52 (patch)
treefad8cb898a94540395496dc8272863ed5831117b
parentc289f6bb70f494aa875e12396954278764e98578 (diff)
downloadydb-d56b8b1dadbcf830166ed8a24e6f3b8209c2cb52.tar.gz
Fix metric PotentialMaxThreadCount (#629)
Co-authored-by: Aleksandr Kriukov <kruall@ydb.ru>
-rw-r--r--ydb/library/actors/core/harmonizer.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/ydb/library/actors/core/harmonizer.cpp b/ydb/library/actors/core/harmonizer.cpp
index 24eb18ec7d..733606a7b5 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<i64>(pool.MaxThreadCount, pool.GetThreadCount() + budgetInt));
+ }
}
void THarmonizer::CalculatePriorityOrder() {