Load Balancer
The Load Balancer dispatches tasks to achieve optimal performance and scalability. When you run a workflow, the Load Balancer dispatches the Session, Command, and predefined Event-Wait tasks within the workflow. The Load Balancer matches task requirements with resource availability to identify the best node to run a task. It dispatches the task to a PowerCenter Integration Service process running on the node. It may dispatch tasks to a single node or across nodes.
The Load Balancer dispatches tasks in the order it receives them. When the Load Balancer needs to dispatch more Session and Command tasks than the PowerCenter Integration Service can run, it places the tasks it cannot run in a queue. When nodes become available, the Load Balancer dispatches tasks from the queue in the order determined by the workflow service level.
The following concepts describe Load Balancer functionality:
- •Dispatch process. The Load Balancer performs several steps to dispatch tasks.
- •Resources. The Load Balancer can use PowerCenter resources to determine if it can dispatch a task to a node.
- •Resource provision thresholds. The Load Balancer uses resource provision thresholds to determine whether it can start additional tasks on a node.
- •Dispatch mode. The dispatch mode determines how the Load Balancer selects nodes for dispatch.
- •Service levels. When multiple tasks are waiting in the dispatch queue, the Load Balancer uses service levels to determine the order in which to dispatch tasks from the queue.
Dispatch Process
The Load Balancer uses different criteria to dispatch tasks depending on whether the PowerCenter Integration Service runs on a node or a grid.
Dispatch Tasks on a Node
When the PowerCenter Integration Service runs on a node, the Load Balancer performs the following steps to dispatch a task:
- 1. The Load Balancer checks resource provision thresholds on the node. If dispatching the task causes any threshold to be exceeded, the Load Balancer places the task in the dispatch queue, and it dispatches the task later.
The Load Balancer checks different thresholds depending on the dispatch mode.
- 2. The Load Balancer dispatches all tasks to the node that runs the master PowerCenter Integration Service process.
Dispatch Tasks Across a Grid
When the PowerCenter Integration Service runs on a grid, the Load Balancer performs the following steps to determine on which node to run a task:
- 1. The Load Balancer verifies which nodes are currently running and enabled.
- 2. If you configure the PowerCenter Integration Service to check resource requirements, the Load Balancer identifies nodes that have the PowerCenter resources required by the tasks in the workflow.
- 3. The Load Balancer verifies that the resource provision thresholds on each candidate node are not exceeded. If dispatching the task causes a threshold to be exceeded, the Load Balancer places the task in the dispatch queue, and it dispatches the task later.
The Load Balancer checks thresholds based on the dispatch mode.
- 4. The Load Balancer selects a node based on the dispatch mode.
Resources
You can configure the PowerCenter Integration Service to check the resources available on each node and match them with the resources required to run the task. If you configure the PowerCenter Integration Service to run on a grid and to check resources, the Load Balancer dispatches a task to a node where the required PowerCenter resources are available. For example, if a session uses an SAP source, the Load Balancer dispatches the session only to nodes where the SAP client is installed. If no available node has the required resources, the PowerCenter Integration Service fails the task.
You configure the PowerCenter Integration Service to check resources in the Administrator tool.
You define resources available to a node in the Administrator tool. You assign resources required by a task in the task properties.
The PowerCenter Integration Service writes resource requirements and availability information in the workflow log.
Resource Provision Thresholds
The Load Balancer uses resource provision thresholds to determine the maximum load acceptable for a node. The Load Balancer can dispatch a task to a node when dispatching the task does not cause the resource provision thresholds to be exceeded.
The Load Balancer checks the following thresholds:
- •Maximum CPU Run Queue Length. The maximum number of runnable threads waiting for CPU resources on the node. The Load Balancer excludes the node if the maximum number of waiting threads is exceeded.
The Load Balancer checks this threshold in metric-based and adaptive dispatch modes.
- •Maximum Memory %. The maximum percentage of virtual memory allocated on the node relative to the total physical memory size. The Load Balancer excludes the node if dispatching the task causes this threshold to be exceeded.
The Load Balancer checks this threshold in metric-based and adaptive dispatch modes.
- •Maximum Processes. The maximum number of running processes allowed for each PowerCenter Integration Service process that runs on the node. The Load Balancer excludes the node if dispatching the task causes this threshold to be exceeded.
The Load Balancer checks this threshold in all dispatch modes.
If all nodes in the grid have reached the resource provision thresholds before any PowerCenter task has been dispatched, the Load Balancer dispatches tasks one at a time to ensure that PowerCenter tasks are still executed.
You define resource provision thresholds in the node properties.
Dispatch Mode
The dispatch mode determines how the Load Balancer selects nodes to distribute workflow tasks. The Load Balancer uses the following dispatch modes:
- •Round-robin. The Load Balancer dispatches tasks to available nodes in a round-robin fashion. It checks the Maximum Processes threshold on each available node and excludes a node if dispatching a task causes the threshold to be exceeded. This mode is the least compute-intensive and is useful when the load on the grid is even and the tasks to dispatch have similar computing requirements.
- •Metric-based. The Load Balancer evaluates nodes in a round-robin fashion. It checks all resource provision thresholds on each available node and excludes a node if dispatching a task causes the thresholds to be exceeded. The Load Balancer continues to evaluate nodes until it finds a node that can accept the task. This mode prevents overloading nodes when tasks have uneven computing requirements.
- •Adaptive. The Load Balancer ranks nodes according to current CPU availability. It checks all resource provision thresholds on each available node and excludes a node if dispatching a task causes the thresholds to be exceeded. This mode prevents overloading nodes and ensures the best performance on a grid that is not heavily loaded.
When the Load Balancer runs in metric-based or adaptive mode, it uses task statistics to determine whether a task can run on a node. The Load Balancer averages statistics from the last three runs of the task to estimate the computing resources required to run the task. If no statistics exist in the repository, the Load Balancer uses default values.
In adaptive dispatch mode, the Load Balancer can use the CPU profile for the node to identify the node with the most computing resources.
You configure the dispatch mode in the domain properties.
Service Levels
Service levels establish priority among tasks that are waiting to be dispatched.
When the Load Balancer has more Session and Command tasks to dispatch than the PowerCenter Integration Service can run at the time, the Load Balancer places the tasks in the dispatch queue. When nodes become available, the Load Balancer dispatches tasks from the queue. The Load Balancer uses service levels to determine the order in which to dispatch tasks from the queue.
You create and edit service levels in the domain properties in the Administrator tool. You assign service levels to workflows in the workflow properties in the PowerCenter Workflow Manager.