aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorivanmorozov333 <ivanmorozov@ydb.tech>2025-04-04 15:59:07 +0300
committerGitHub <noreply@github.com>2025-04-04 15:59:07 +0300
commit36fc7c93ffa1c899cb704635c6910b14e670ae7f (patch)
tree7d64e0ab28756889878b0f3d12d9834af11acb0d
parent667619cc099af1b369ffeff3f93ec41de84cbf86 (diff)
downloadydb-36fc7c93ffa1c899cb704635c6910b14e670ae7f.tar.gz
additional signals for conveyor (#16770)
-rw-r--r--ydb/core/tx/conveyor/service/service.cpp5
-rw-r--r--ydb/core/tx/conveyor/service/service.h6
2 files changed, 7 insertions, 4 deletions
diff --git a/ydb/core/tx/conveyor/service/service.cpp b/ydb/core/tx/conveyor/service/service.cpp
index baf40835c7..3f93fed0dc 100644
--- a/ydb/core/tx/conveyor/service/service.cpp
+++ b/ydb/core/tx/conveyor/service/service.cpp
@@ -36,9 +36,10 @@ void TDistributor::HandleMain(TEvInternal::TEvTaskProcessedResult::TPtr& evExt)
("queue", ProcessesOrdered.size())("workers", Workers.size())("count", ev->GetProcessIds().size())("d", ev->GetInstants().back() - ev->GetInstants().front());
for (ui32 idx = 0; idx < ev->GetProcessIds().size(); ++idx) {
AddCPUTime(ev->GetProcessIds()[idx], ev->GetInstants()[idx + 1] - std::max(LastAddProcessInstant, ev->GetInstants()[idx]));
+ Counters.TaskExecuteHistogram->Collect((ev->GetInstants()[idx + 1] - ev->GetInstants()[idx]).MicroSeconds());
}
const TDuration dExecution = ev->GetInstants().back() - ev->GetInstants().front();
- Counters.ExecuteHistogram->Collect(dExecution.MicroSeconds());
+ Counters.PackExecuteHistogram->Collect(dExecution.MicroSeconds());
Counters.ExecuteDuration->Add(dExecution.MicroSeconds());
const TMonotonic now = TMonotonic::Now();
@@ -48,7 +49,7 @@ void TDistributor::HandleMain(TEvInternal::TEvTaskProcessedResult::TPtr& evExt)
const TDuration predictedDurationPerTask = std::max<TDuration>(dExecution / ev->GetProcessIds().size(), TDuration::MicroSeconds(10));
const double alpha = 0.1;
const ui32 countTheory = (dBackSend + dForwardSend).GetValue() / (alpha * predictedDurationPerTask.GetValue());
- const ui32 countPredicted = std::max<ui32>(1, std::min<ui32>(WaitingTasksCount.Val(), countTheory));
+ const ui32 countPredicted = std::max<ui32>(1, std::min<ui32>(WaitingTasksCount.Val() / WorkersCount, countTheory));
AFL_DEBUG(NKikimrServices::TX_CONVEYOR)("action", "prediction")("alpha", alpha)
("send_forward", dForwardSend)("send_back", dBackSend)("count", ev->GetProcessIds().size())("exec", dExecution)("theory_count", countTheory)
("real_count", countPredicted);
diff --git a/ydb/core/tx/conveyor/service/service.h b/ydb/core/tx/conveyor/service/service.h
index e42ae5ec00..d58167fe44 100644
--- a/ydb/core/tx/conveyor/service/service.h
+++ b/ydb/core/tx/conveyor/service/service.h
@@ -35,7 +35,8 @@ public:
const ::NMonitoring::THistogramPtr WaitingHistogram;
const ::NMonitoring::THistogramPtr PackHistogram;
- const ::NMonitoring::THistogramPtr ExecuteHistogram;
+ const ::NMonitoring::THistogramPtr PackExecuteHistogram;
+ const ::NMonitoring::THistogramPtr TaskExecuteHistogram;
const ::NMonitoring::THistogramPtr SendBackHistogram;
const ::NMonitoring::THistogramPtr SendFwdHistogram;
const ::NMonitoring::THistogramPtr ReceiveTaskHistogram;
@@ -58,7 +59,8 @@ public:
, UseWorkerRate(TBase::GetDeriviative("UseWorker"))
, WaitingHistogram(TBase::GetHistogram("Waiting/Duration/Us", NMonitoring::ExponentialHistogram(25, 2, 50)))
, PackHistogram(TBase::GetHistogram("ExecutionPack/Count", NMonitoring::LinearHistogram(25, 1, 1)))
- , ExecuteHistogram(TBase::GetHistogram("Execute/Duration/Us", NMonitoring::ExponentialHistogram(25, 2, 50)))
+ , PackExecuteHistogram(TBase::GetHistogram("PackExecute/Duration/Us", NMonitoring::ExponentialHistogram(25, 2, 50)))
+ , TaskExecuteHistogram(TBase::GetHistogram("TaskExecute/Duration/Us", NMonitoring::ExponentialHistogram(25, 2, 50)))
, SendBackHistogram(TBase::GetHistogram("SendBack/Duration/Us", NMonitoring::ExponentialHistogram(25, 2, 50)))
, SendFwdHistogram(TBase::GetHistogram("SendForward/Duration/Us", NMonitoring::ExponentialHistogram(25, 2, 50)))
, ReceiveTaskHistogram(TBase::GetHistogram("ReceiveTask/Duration/Us", NMonitoring::ExponentialHistogram(25, 2, 50)))