Skip to content

Commit 6acee11

Browse files
committed
Added memory info into kqprun embedded UI
1 parent 29b60bf commit 6acee11

File tree

4 files changed

+62
-21
lines changed

4 files changed

+62
-21
lines changed

ydb/core/driver_lib/run/config_helpers.cpp

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
#include "config_helpers.h"
22

3+
#include <ydb/core/base/localdb.h>
4+
#include <ydb/core/protos/bootstrap.pb.h>
5+
#include <ydb/core/protos/resource_broker.pb.h>
6+
37
#include <ydb/library/actors/util/affinity.h>
48

59

@@ -114,4 +118,31 @@ NActors::TSchedulerConfig CreateSchedulerConfig(const NKikimrConfig::TActorSyste
114118

115119
} // namespace NActorSystemConfigHelpers
116120

121+
namespace NKikimrConfigHelpers {
122+
123+
NMemory::TResourceBrokerConfig CreateMemoryControllerResourceBrokerConfig(const NKikimrConfig::TAppConfig& config) {
124+
NMemory::TResourceBrokerConfig resourceBrokerSelfConfig; // for backward compatibility
125+
auto mergeResourceBrokerConfigs = [&](const NKikimrResourceBroker::TResourceBrokerConfig& resourceBrokerConfig) {
126+
if (resourceBrokerConfig.HasResourceLimit() && resourceBrokerConfig.GetResourceLimit().HasMemory()) {
127+
resourceBrokerSelfConfig.LimitBytes = resourceBrokerConfig.GetResourceLimit().GetMemory();
128+
}
129+
for (const auto& queue : resourceBrokerConfig.GetQueues()) {
130+
if (queue.GetName() == NLocalDb::KqpResourceManagerQueue) {
131+
if (queue.HasLimit() && queue.GetLimit().HasMemory()) {
132+
resourceBrokerSelfConfig.QueryExecutionLimitBytes = queue.GetLimit().GetMemory();
133+
}
134+
}
135+
}
136+
};
137+
if (config.HasBootstrapConfig() && config.GetBootstrapConfig().HasResourceBroker()) {
138+
mergeResourceBrokerConfigs(config.GetBootstrapConfig().GetResourceBroker());
139+
}
140+
if (config.HasResourceBrokerConfig()) {
141+
mergeResourceBrokerConfigs(config.GetResourceBrokerConfig());
142+
}
143+
return resourceBrokerSelfConfig;
144+
}
145+
146+
} // namespace NKikimrConfigHelpers
147+
117148
} // namespace NKikimr

ydb/core/driver_lib/run/config_helpers.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#pragma once
22

3+
#include <ydb/core/memory_controller/memory_controller.h>
34
#include <ydb/core/protos/config.pb.h>
45

56
#include <ydb/library/actors/core/config.h>
@@ -15,4 +16,10 @@ NActors::TSchedulerConfig CreateSchedulerConfig(const NKikimrConfig::TActorSyste
1516

1617
} // namespace NActorSystemConfigHelpers
1718

19+
namespace NKikimrConfigHelpers {
20+
21+
NMemory::TResourceBrokerConfig CreateMemoryControllerResourceBrokerConfig(const NKikimrConfig::TAppConfig& config);
22+
23+
} // namespace NKikimrConfigHelpers
24+
1825
} // namespace NKikimr

ydb/core/driver_lib/run/kikimr_services_initializers.cpp

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2052,28 +2052,8 @@ void TMemoryControllerInitializer::InitializeServices(
20522052
NActors::TActorSystemSetup* setup,
20532053
const NKikimr::TAppData* appData)
20542054
{
2055-
NMemory::TResourceBrokerConfig resourceBrokerSelfConfig; // for backward compatibility
2056-
auto mergeResourceBrokerConfigs = [&](const NKikimrResourceBroker::TResourceBrokerConfig& resourceBrokerConfig) {
2057-
if (resourceBrokerConfig.HasResourceLimit() && resourceBrokerConfig.GetResourceLimit().HasMemory()) {
2058-
resourceBrokerSelfConfig.LimitBytes = resourceBrokerConfig.GetResourceLimit().GetMemory();
2059-
}
2060-
for (const auto& queue : resourceBrokerConfig.GetQueues()) {
2061-
if (queue.GetName() == NLocalDb::KqpResourceManagerQueue) {
2062-
if (queue.HasLimit() && queue.GetLimit().HasMemory()) {
2063-
resourceBrokerSelfConfig.QueryExecutionLimitBytes = queue.GetLimit().GetMemory();
2064-
}
2065-
}
2066-
}
2067-
};
2068-
if (Config.HasBootstrapConfig() && Config.GetBootstrapConfig().HasResourceBroker()) {
2069-
mergeResourceBrokerConfigs(Config.GetBootstrapConfig().GetResourceBroker());
2070-
}
2071-
if (Config.HasResourceBrokerConfig()) {
2072-
mergeResourceBrokerConfigs(Config.GetResourceBrokerConfig());
2073-
}
2074-
20752055
auto* actor = NMemory::CreateMemoryController(TDuration::Seconds(1), ProcessMemoryInfoProvider,
2076-
Config.GetMemoryControllerConfig(), resourceBrokerSelfConfig,
2056+
Config.GetMemoryControllerConfig(), NKikimrConfigHelpers::CreateMemoryControllerResourceBrokerConfig(Config),
20772057
appData->Counters);
20782058
setup->LocalServices.emplace_back(
20792059
NMemory::MakeMemoryControllerId(0),

ydb/core/testlib/test_client.cpp

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@
9393
#include <ydb/core/mind/tenant_slot_broker.h>
9494
#include <ydb/core/mind/tenant_node_enumeration.h>
9595
#include <ydb/core/mind/node_broker.h>
96+
#include <ydb/core/mon_alloc/monitor.h>
9697
#include <ydb/core/kesus/tablet/events.h>
9798
#include <ydb/core/sys_view/service/sysview_service.h>
9899
#include <yql/essentials/minikql/mkql_function_registry.h>
@@ -1074,6 +1075,28 @@ namespace Tests {
10741075
}
10751076
}
10761077

1078+
{
1079+
if (Settings->NeedStatsCollectors) {
1080+
TString filePathPrefix;
1081+
if (Settings->AppConfig->HasMonitoringConfig()) {
1082+
filePathPrefix = Settings->AppConfig->GetMonitoringConfig().GetMemAllocDumpPathPrefix();
1083+
}
1084+
1085+
const TIntrusivePtr<NMemory::IProcessMemoryInfoProvider> processMemoryInfoProvider(MakeIntrusive<NMemory::TProcessMemoryInfoProvider>());
1086+
1087+
IActor* monitorActor = CreateMemProfMonitor(TDuration::Seconds(1), processMemoryInfoProvider,
1088+
Runtime->GetAppData(nodeIdx).Counters, filePathPrefix);
1089+
const TActorId monitorActorId = Runtime->Register(monitorActor, nodeIdx, Runtime->GetAppData(nodeIdx).BatchPoolId);
1090+
Runtime->RegisterService(MakeMemProfMonitorID(Runtime->GetNodeId(nodeIdx)), monitorActorId, nodeIdx);
1091+
1092+
IActor* controllerActor = NMemory::CreateMemoryController(TDuration::Seconds(1), processMemoryInfoProvider,
1093+
Settings->AppConfig->GetMemoryControllerConfig(), NKikimrConfigHelpers::CreateMemoryControllerResourceBrokerConfig(*Settings->AppConfig),
1094+
Runtime->GetAppData(nodeIdx).Counters);
1095+
const TActorId controllerActorId = Runtime->Register(controllerActor, nodeIdx, Runtime->GetAppData(nodeIdx).BatchPoolId);
1096+
Runtime->RegisterService(NMemory::MakeMemoryControllerId(0), controllerActorId, nodeIdx);
1097+
}
1098+
}
1099+
10771100
{
10781101
IActor* kesusService = NKesus::CreateKesusProxyService();
10791102
TActorId kesusServiceId = Runtime->Register(kesusService, nodeIdx, userPoolId);

0 commit comments

Comments
 (0)