Fine-tuning bulk operation processing
Learn how to configure Edge Flow Manager bulk operation updates.
You can find the related configuration in the
efm.properties
file located in
the conf
directory of the Edge Flow Manager
installation. Edge Flow Manager sends updates to agents through
operations, which can be categorized into the following types:- Agent level: Operations for individual agents, for example: debug requests
- Agent class level: Operations for all agents within an agent class, for example: flow updates, asset downloads, or property updates
This documentation describes various configuration scenarios to optimize agent class level updates.
To prevent heavy network loads and avoid Distributed Denial-of-Service (DDoS)-like behavior from agents, the Edge Flow Manager sends updates to agents in smaller batches.
Below are the parameters related to operation
updates:
# The maximum number of operations queued to be sent at once
efm.operation.monitoring.rollingBatchOperationsSize=100
# The number of operations to queue for different update types
efm.operation.monitoring.rollingOperationsSize.update.asset=10
efm.operation.monitoring.rollingOperationsSize.update.configuration=100
efm.operation.monitoring.rollingOperationsSize.update.properties=100
efm.operation.monitoring.rollingOperationsSize.sync.resource=100
# The interval for refreshing the operation queue
efm.operation.monitoring.rollingBatchOperationsFrequency=10s
# The multiplier for agent heartbeat interval properties to calculate timeout for queued operation
efm.operation.monitoring.inQueuedStateTimeoutHeartbeatRate=1.0
# The timeout for deployed, but not done operations
efm.operation.monitoring.inDeployedStateTimeout=5m
# The interval for checking operation timeouts
efm.operation.monitoring.inDeployedStateCheckFrequency=1m
# Enable/disable operation timeouts
efm.operation.monitoring.enabled=true
# The agent heartbeat interval monitor properties default value
efm.monitor.maxHeartbeatInterval=5m
# Class-specific values
efm.monitor.maxHeartbeatIntervalForClass.[Class\ A]=1m
efm.monitor.maxHeartbeatIntervalForClass.[Class\ B]=2m
efm.monitor.maxHeartbeatIntervalForClass.[Class\ C]=0m
Check out the different scenarios to see how changing these parameters can impact a deployment with 10,000 agents.