Your opinion will help to improve our service
Leave a feedback >#include <userver/components/manager_controller_component.hpp>
Component that prepares the engine internals and starts all the other components.
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 stack Coroutine stack | 256 * 1024 |
coro_pool.local_cache_size | local coroutine cache size per thread | 32 |
coro_pool.stack_usage_monitor_enabled | whether stack usage is accounted and warnings about too high stack usage are logged Coroutine stack | true |
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 | main-task-processor |
fs_task_processor | name of the blocking task processor to use in components | fs-task-processor |
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 |
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.
components_manager:
coro_pool:
initial_size: 50
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 75 of file manager_controller_component.hpp.
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. | |
|
inlinevirtualinherited |
Reimplemented in components::ComponentBase, and server::handlers::Restart.
Definition at line 49 of file raw_component_base.hpp.
|
inlinevirtualinherited |
Reimplemented in urabbitmq::ConsumerComponentBase, components::ComponentBase, and components::Server.
Definition at line 55 of file raw_component_base.hpp.
|
inlinevirtualinherited |
Reimplemented in urabbitmq::ConsumerComponentBase, components::ComponentBase, components::Server, and server::handlers::Ping.
Definition at line 53 of file raw_component_base.hpp.
|
inlinevirtualinherited |
Reimplemented in components::ComponentBase.
Definition at line 51 of file raw_component_base.hpp.