Skip to content

Commit c86ec91

Browse files
authored
In tiny mode use lower scheduling resolution (#27893) (#28736)
2 parents 9fa6f8d + 429aabb commit c86ec91

File tree

17 files changed

+46
-7
lines changed

17 files changed

+46
-7
lines changed

.github/docker/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,6 @@ EXPOSE ${GRPC_PORT:-2136}
4646
EXPOSE ${MON_PORT:-8765}
4747
EXPOSE ${YDB_KAFKA_PROXY_PORT:-9092}
4848

49-
HEALTHCHECK --start-period=60s --interval=1s CMD sh /health_check
49+
HEALTHCHECK --start-period=60s --interval=60s CMD sh /health_check
5050

5151
CMD ["sh", "/initialize_local_ydb"]

.github/docker/files/initialize_local_ydb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ export GRPC_TLS_PORT=${GRPC_TLS_PORT:-2135}
88
export GRPC_PORT=${GRPC_PORT:-2136}
99
export YDB_GRPC_TLS_DATA_PATH="/ydb_certs"
1010
export YDB_KAFKA_PROXY_PORT=${YDB_KAFKA_PROXY_PORT:-9092}
11+
export YDB_TINY_MODE="true"
1112

1213
# Start local_ydb tool. Pass additional arguments for local_ydb
1314
/local_ydb deploy --ydb-working-dir /ydb_data --ydb-binary-path /ydbd --fixed-ports --dont-use-log-files "$@";

ydb/core/cms/console/configs_dispatcher.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -896,6 +896,7 @@ try {
896896
TKikimrScopeId scopeId;
897897
TString tenantName;
898898
TBasicKikimrServicesMask servicesMask;
899+
bool tinyMode;
899900
TString clusterName;
900901
NConfig::TConfigsDispatcherInitInfo configsDispatcherInitInfo;
901902

@@ -905,9 +906,12 @@ try {
905906
scopeId,
906907
tenantName,
907908
servicesMask,
909+
tinyMode,
908910
clusterName,
909911
configsDispatcherInitInfo);
910912

913+
Y_UNUSED(tinyMode);
914+
911915
CandidateStartupConfig = appConfig;
912916
StartupConfigProcessError = false;
913917
StartupConfigProcessDiff = false;

ydb/core/config/init/init.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,7 @@ class IInitialConfigurator {
271271
TKikimrScopeId& scopeId,
272272
TString& tenantName,
273273
TBasicKikimrServicesMask& servicesMask,
274+
bool& tinyMode,
274275
TString& clusterName,
275276
NConfig::TConfigsDispatcherInitInfo& configsDispatcherInitInfo) const = 0;
276277
};
@@ -330,6 +331,7 @@ class TInitialConfigurator {
330331
TKikimrScopeId& scopeId,
331332
TString& tenantName,
332333
TBasicKikimrServicesMask& servicesMask,
334+
bool& tinyMode,
333335
TString& clusterName,
334336
TConfigsDispatcherInitInfo& configsDispatcherInitInfo) const
335337
{
@@ -339,6 +341,7 @@ class TInitialConfigurator {
339341
scopeId,
340342
tenantName,
341343
servicesMask,
344+
tinyMode,
342345
clusterName,
343346
configsDispatcherInitInfo);
344347
}

ydb/core/config/init/init_impl.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1412,6 +1412,7 @@ class TInitialConfiguratorImpl
14121412
TKikimrScopeId& scopeId,
14131413
TString& tenantName,
14141414
TBasicKikimrServicesMask& servicesMask,
1415+
bool& tinyMode,
14151416
TString& clusterName,
14161417
TConfigsDispatcherInitInfo& configsDispatcherInitInfo) const override
14171418
{
@@ -1420,6 +1421,7 @@ class TInitialConfiguratorImpl
14201421
scopeId = ScopeId;
14211422
tenantName = TenantName;
14221423
servicesMask = ServicesMask;
1424+
tinyMode = CommonAppOptions.TinyMode;
14231425
clusterName = ClusterName;
14241426
configsDispatcherInitInfo.InitialConfig = appConfig;
14251427
configsDispatcherInitInfo.StartupConfigYaml = appConfig.GetStartupConfigYaml();

ydb/core/driver_lib/cli_utils/cli_cmds_server.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ int TClientCommandServer::Run(TConfig& config) {
3636
RunConfig.ScopeId,
3737
RunConfig.TenantName,
3838
RunConfig.ServicesMask,
39+
RunConfig.TinyMode,
3940
RunConfig.ClusterName,
4041
RunConfig.ConfigsDispatcherInitInfo);
4142

ydb/core/driver_lib/cli_utils/cli_cmds_validate_config.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ NKikimrConfig::TAppConfig TransformConfig(const std::vector<TString>& args) {
5050
TKikimrScopeId scopeId;
5151
TString tenantName;
5252
TBasicKikimrServicesMask servicesMask;
53+
bool tinyMode;
5354
TString clusterName;
5455
NConfig::TConfigsDispatcherInitInfo configsDispatcherInitInfo;
5556

@@ -59,9 +60,12 @@ NKikimrConfig::TAppConfig TransformConfig(const std::vector<TString>& args) {
5960
scopeId,
6061
tenantName,
6162
servicesMask,
63+
tinyMode,
6264
clusterName,
6365
configsDispatcherInitInfo);
6466

67+
Y_UNUSED(tinyMode);
68+
6569
return appConfig;
6670
}
6771

ydb/core/driver_lib/run/auto_config_initializer.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@ namespace {
3939
constexpr i16 GRpcHandlersPerCompletionQueueInMaxPreparedCpuCase = 1000;
4040
constexpr i16 GRpcHandlersPerCompletionQueuePerCpu = GRpcHandlersPerCompletionQueueInMaxPreparedCpuCase / MaxPreparedCpuCount;
4141

42+
constexpr i16 SchedulerTinyCoresThreshold = 4;
43+
44+
constexpr ::arc_ui64 SchedulerDefaultResolution = 64;
45+
constexpr ::arc_ui64 SchedulerTinyResolution = 1024;
46+
4247
TShortPoolCfg ComputeCpuTable[MaxPreparedCpuCount + 1][5] {
4348
{ {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} }, // 0
4449
{ {1, 1}, {0, 1}, {0, 1}, {0, 0}, {0, 0} }, // 1
@@ -227,7 +232,7 @@ namespace NKikimr::NAutoConfigInitializer {
227232
return servicePools;
228233
}
229234

230-
void ApplyAutoConfig(NKikimrConfig::TActorSystemConfig *config, bool isDynamicNode) {
235+
void ApplyAutoConfig(NKikimrConfig::TActorSystemConfig *config, bool isDynamicNode, bool tinyMode) {
231236
config->SetUseAutoConfig(true);
232237
config->ClearExecutor();
233238

@@ -239,7 +244,10 @@ namespace NKikimr::NAutoConfigInitializer {
239244

240245
if (!config->HasScheduler()) {
241246
auto *scheduler = config->MutableScheduler();
242-
scheduler->SetResolution(64);
247+
248+
bool useTiny = tinyMode || (cpuCount >= 1 && cpuCount <= SchedulerTinyCoresThreshold);
249+
scheduler->SetResolution(useTiny ? SchedulerTinyResolution : SchedulerDefaultResolution);
250+
243251
scheduler->SetSpinThreshold(0);
244252
scheduler->SetProgressThreshold(10'000);
245253
}

ydb/core/driver_lib/run/auto_config_initializer.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ namespace NKikimr::NAutoConfigInitializer {
8080

8181
TMap<TString, ui32> GetServicePools(const NKikimrConfig::TActorSystemConfig &config, bool useAutoConfig);
8282

83-
void ApplyAutoConfig(NKikimrConfig::TActorSystemConfig *config, bool isDynamicNode);
83+
void ApplyAutoConfig(NKikimrConfig::TActorSystemConfig *config, bool isDynamicNode, bool tinyMode);
8484

8585
void ApplyAutoConfig(NKikimrConfig::TGRpcConfig *config, const NKikimrConfig::TActorSystemConfig &asConfig);
8686

ydb/core/driver_lib/run/config.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ struct TKikimrRunConfig {
2323

2424
TString TenantName;
2525
TBasicKikimrServicesMask ServicesMask;
26+
bool TinyMode = false;
2627

2728
TString ClusterName;
2829

0 commit comments

Comments
 (0)