userver: components::ManagerControllerComponent Class Reference
Loading...
Searching...
No Matches
components::ManagerControllerComponent Class Referencefinal

#include <userver/components/manager_controller_component.hpp>

Detailed Description

Component that prepares the engine internals and starts all the other components.

ManagerControllerComponent Dynamic config

Static options:

Name Description Default value
coro_pool.initial_size amount of coroutines to preallocate on startup 1000
coro_pool.max_size max amount of coroutines to keep preallocated 4000
coro_pool.stack_size size of a single coroutine 256 * 1024
coro_pool.local_cache_size local coroutine cache size per thread 32
event_thread_pool.threads number of threads to process low level IO system calls (number of ev loops to start in libev) 2
event_thread_pool.thread_name set OS thread name to this value 'event-worker'
components dictionary of "component name": "options" -
default_task_processor name of the default task processor to use in components -
task_processors.*NAME*.*OPTIONS* dictionary of task processors to create and their options. See description below -
mlock_debug_info whether to mlock(2) process debug info to prevent major page faults on unwinding true
disable_phdr_cache whether to disable caching of phdr_info objects. Usable if rebuilding with cmake variable USERVER_DISABLE_PHDR_CACHE is off limits, and has the same effect false
static_config_validation.validate_all_components whether to validate static config according to schema; should be true for all new services true
preheat_stacktrace_collector whether to collect a dummy stacktrace at server start up (usable to avoid loading debug info at random point at runtime) true
userver_experiments.*NAME* whether to enable certain userver experiments; these are gradually enabled by userver team, for internal use only false
graceful_shutdown_interval at shutdown, first hang for this duration with /ping 5xx to give the balancer a chance to redirect new requests to other hosts 0s

Static task_processor options:

Name Description Default value
guess-cpu-limit guess optimal threads count false
thread_name set OS thread name to this value Part of the task_processor name before the first '-' symbol with '-worker' appended; for example 'fs-worker' or 'main-worker'
worker_threads threads count for the task processor -
os-scheduling OS scheduling mode for the task processor threads. 'idle' sets the lowest priority. 'low-priority' sets the priority below 'normal' but higher than 'idle'. normal
spinning-iterations tunes the number of spin-wait iterations in case of an empty task queue before threads go to sleep 1000
task-processor-queue Task queue mode for the task processor. global-task-queue default task queue. work-stealing-task-queue experimental with potentially better scalability than global-task-queue. global-task-queue
task-trace optional dictionary of tracing options empty (disabled)
task-trace.every set N to trace each Nth task 1000
task-trace.max-context-switch-count set upper limit of context switches to trace for a single task 1000
task-trace.logger required name of logger to write traces to, should not be the 'default' logger -

Tips and tricks on task-trace usage are described in Profiling context switches.

Static configuration example:

# yaml
components_manager:
coro_pool:
initial_size: 5000
max_size: 50000
default_task_processor: main-task-processor
event_thread_pool:
threads: 2
task_processors:
bg-task-processor:
thread_name: bg-worker
worker_threads: 2
os-scheduling: idle
task-processor-queue: global-task-queue
task-trace:
every: 1000
max-context-switch-count: 1000
logger: tracer
fs-task-processor:
thread_name: fs-worker
worker_threads: 2
main-task-processor:
thread_name: main-worker
worker_threads: 16
monitor-task-processor:
thread_name: monitor
worker_threads: 2
components:
manager-controller: # Nothing

Definition at line 71 of file manager_controller_component.hpp.

+ Inheritance diagram for components::ManagerControllerComponent:

Public Member Functions

 ManagerControllerComponent (const components::ComponentConfig &config, const components::ComponentContext &context)
 
virtual ComponentHealth GetComponentHealth () const
 
virtual void OnLoadingCancelled ()
 
virtual void OnAllComponentsLoaded ()
 
virtual void OnAllComponentsAreStopping ()
 

Static Public Member Functions

static yaml_config::Schema GetStaticConfigSchema ()
 

Static Public Attributes

static constexpr std::string_view kName = "manager-controller"
 The default name of components::ManagerControllerComponent.
 

Member Function Documentation

◆ GetComponentHealth()

virtual ComponentHealth components::RawComponentBase::GetComponentHealth ( ) const
inlinevirtualinherited

Reimplemented in components::ComponentBase, and server::handlers::Restart.

Definition at line 49 of file raw_component_base.hpp.

◆ OnAllComponentsAreStopping()

virtual void components::RawComponentBase::OnAllComponentsAreStopping ( )
inlinevirtualinherited

◆ OnAllComponentsLoaded()

virtual void components::RawComponentBase::OnAllComponentsLoaded ( )
inlinevirtualinherited

◆ OnLoadingCancelled()

virtual void components::RawComponentBase::OnLoadingCancelled ( )
inlinevirtualinherited

Reimplemented in components::ComponentBase.

Definition at line 51 of file raw_component_base.hpp.


The documentation for this class was generated from the following file: