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.

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
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
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

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-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-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 66 of file manager_controller_component.hpp.

+ Inheritance diagram for components::ManagerControllerComponent:
+ Collaboration diagram for components::ManagerControllerComponent:

Public Member Functions

 ManagerControllerComponent (const components::ComponentConfig &config, const components::ComponentContext &context)
 

Static Public Attributes

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

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