Distributed Builds and Remote Agents
Using Distributed Builds with Remote Agents for Continuous Integration
Distributed builds requires the use of Remote Agents. A common question I see on our support forums is how to configure Remote Agents to maximize machine resources. When using OpenMake Mojo or Meister, you can configure a variety of Remote Agents types including:
- Pre-Provisioned Virtual
- CloudBuilder Options: Amazon EC2, HyperV, and vCenter
CPU % Threshold: Used to create a weighted value for use in deciding to which machine a queued activity will be assigned during load balancing. Recommend value is 80%. For instance, if there are two Remote Agents, Agent A and Agent B, a CPU % Threshold can be assigned to determine which machine to use first.
The equation for this weighted value is:
CPU % Threshold – Current CPU % Usage
For example, if Agent A and Agent B both have a CPU % Threshold of 80%, and Agent A is currently running at 50% CPU, its weighted value will be 30. If Agent B is running at 70% CPU utilization, its weighted value will be 10. In this case, if all other settings for the two Remote Agents are the same, Agent A will have the queued activities assigned to it, since it has a higher differential between CPU % threshold and current CPU % usage.
Queue Depth Threshold: Determines how many Workflow Activities will be queued up to run before the KB server starts offloading activities to other Remote Agents in the Server Pool. The value of this number is determined by the amount of resources available to process Workflow Activities. You can enter a number between 1 and 200. The initial recommended value to 10 and can be increased if additional Remote Agents are being started unnecessarily. The higher the number, the larger the queue.
Max # of Running Workflows: Controls how many Workflows can be run simultaneously on the same Remote Agent. Note: this value is different from the value set by the OMSUBMIT_MAX_USER_PROC variable, which controls how many simultaneous Workflow processes can be run on a Remote Agent, or better known as parallelized processes.
By configuring and defining your Remote Agents to server pools you can easily maximize server resources which will improve your workflow performance and speed.