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