Fine-tuning bulk operation processing

Learn how to configure the Edge Flow Manager (EFM) bulk operation updates. You can find the related configuration in the efm.properties file located in the conf directory of the EFM installation.

EFM sends updates to agents through operations. The operations can be divided in the following types:
  • Agent level: This is for one individual agent. For example, the Debug request.
  • Agent class level: This is for all agents under an agent class. For example, flow update, asset download, property update, and so on.

This documentation describes different configuration scenarios to optimize the agent class level updates.

In order to avoid heavy network loads and prevent Distributed Denial-of-Service (DDoS)-like behavior from agents, the EFM sends updates to agents in smaller batches.

You can find all operation update related configurable parameters in the following list:
# The maximum number of operations queued to be sent at once
efm.operation.monitoring.rollingBatchOperationsSize=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

# 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

Let us go through the scenarios one by one and see what can change a given parameter in the example deployment with 10000 agents.