In addition to creating individual configuration sessions, the Configuration Framework Service (CFS) can also automatically configure any registered system components.
The CFS-Batcher
periodically examines the configuration state of registered components and schedules CFS sessions against those that have not been configured to their desired state.
The frequency of scheduling, the maximum number of components to schedule in the same CFS session, and the expiration time for scheduling less than full sessions are configurable.
CFS-Batcher
schedulingCFS-Batcher
safety mechanismsCFS-Batcher
CFS-Batcher
sessionsCFS-Batcher
sessions to BOS sessionsThere are several situations that will cause automatic configuration:
cfs-state-reporter
package installed will clear the component’s recorded state, resulting in a full configuration.CFS-Batcher
schedulingThe CFS-Batcher
schedules CFS sessions according to the following rules:
CFS-Batcher
safety mechanismsThere are two safety mechanisms built into the CFS-Batcher
scheduling that can delay batches more than the usual amount of time.
Both mechanisms are indicated in the logs:
CFS-Batcher
will not schedule multiple sessions to configure the same component.
CFS-Batcher
monitors on-going sessions that it started so that if one session is started and the desired configuration changes,
CFS-Batcher
can wait until the initial session is completed before scheduling the component with the new configuration to a new session.
CFS-Batcher
is restarted, it will attempt to rebuild its state based on sessions with the “batcher-” naming scheme that are still in progress.
This ensures that scheduling conflicts will not occur even if CFS-Batcher
is restarted.CFS-Batcher
does not schedule multiple configuration sessions for the same component at the same time.CFS-Batcher
fail in a row (the most recent 20 sessions), CFS-Batcher
will start
throttling the creation of new sessions.
CFS-Batcher
.CFS-Batcher
cannot flood Kubernetes with new jobs in a short period of time.CFS-Batcher
(ncn-mw#
) Several CFS-Batcher
behaviors are configurable.
All of the CFS-Batcher
configuration is available through the CFS options:
cray cfs v3 options list --format json | grep -i batch
Example output:
"batch_size": 25,
"batch_window": 60,
"batcher_check_interval": 10,
"batcher_disable": false,
"batcher_max_backoff": 3600,
"batcher_pending_timeout": 300,
"default_batcher_retry_policy": 3,
See CFS Global Options for more information.
Setting these to non-optimal values may affect system performance.
The optimal values will depend on system size and the specifics of the configuration layers that will be applied in the sessions created by CFS-Batcher
.
CFS-Batcher
sessions(ncn-mw#
) The CFS-Batcher
prepends all CFS session names it creates with batcher-
. Sessions that have be created by CFS-Batcher
are found by using the following command with the --name-contains
option:
cray cfs v3 sessions list --name-contains batcher-
(ncn-mw#
) To list the batcher sessions that are currently running, filter with the cray cfs v3 sessions list
command options:
cray cfs v3 sessions list --name-contains batcher- --status running
Use the cray cfs v3 sessions list --help
command output for all filtering options, including session age, tags, status, and success.
CFS-Batcher
sessions to BOS sessions(ncn-mw#
) To find all of the sessions created by the CFS-Batcher
because of configuration requests made by a specific
Boot Orchestration Service (BOS) session, filter the sessions by the name of the BOS session, which is added as a tag on the CFS sessions.
The BOS session ID is required to run the following command.
cray cfs v3 sessions list --tags bos_session=BOS_SESSION_ID