Distributing Workload Among Agents

A properly configured Automation Engine system can deal with hundreds of thousands of processes at the same time. One of its major advantages is the possibility to distribute workload to maximize process optimization. As an administrator, you have several functions at your disposal that help you configure the Automation Engine to make the best out of it. One of them is distributing the workload among Agents when processing Job and File Transfer objects. This is an important feature because some Jobs and File Transfers can be particularly CPU-consuming and have long runtimes. To configure the workload distribution among Agents you use the UC_HOSTCHAR_DEFAULT default VARA object and the Workload Balancing settings for Agents that are available on the Advanced Options dialog. As a developer and object designer, you can configure your Job and File Transfer objects to take advantage of it too.

This topic explains how to work with UC_HOSTCHAR_DEFAULT and the Workload Balancing Agent settings.

Options to Optimize Workload Balancing

You define Agent workload balancing when processing Jobs, File Transfers and Remote Task Manager Jobs at three levels. Both administrator users and developers and object designers are involved:

  • (Administrators) Specifying the default resources allocated to an Agent in a predefined system VARA object. See Defining Workload Balancing in Agents.

  • (Administrators) Overwriting the default at Agent level when necessary.

    The values entered in UC_HOSTCHAR_DEFAULT are the default and apply system-wide, but you can overwrite them temporarily by setting a different value at Agent level. You do it on the Advanced Options dialog available in the Administration perspective for each Agent. The new resource values apply until the Agent connection or the Agent itself is ended. See Ignoring the Allocated Resources.

  • (Developers and object designers) Specifying the resources that can be consumed at object (Job or File Transfer) level.

    On the Attributes Page of the Job and File Transfer definition you can select the Consume <x> resources in the Runtime Parameters section and allocate Agent resources to the object. See Specifying the Maximum Number of Simultaneous Executions at Object Level.

What Are Resources in the Context of Agents?

Resources in the context of Agents do not refer specifically to CPU time or memory but are abstract values. They provide a high level of flexibility to your configuration.

  1. A task starts when the Agent has sufficient resources to execute it.
  2. If there are insufficient resources, the task status changes to Waiting for resource and it is executed when resources are available again.
  3. If there are several tasks waiting, the AE priority decides which task should be processed first. For more information, see Automation Engine Priority when Executing Objects.

Example

An agent has 100 available resources for job executions. Three Jobs should be executed.

  • Job A requires 10 resources and can be executed.
  • Job B requires 50 resources and can also be started. 60 of the available 100 resources are now used and 40 are still available.
  • Job C requires 50 resources. It cannot be executed because there are not enough resources. Its status is Waiting for resource.

Consumed resources are released as soon as the task has ended.

The resources of an Agent are valid for all Clients because the same Agent can be used in several Clients.

In File Transfers, both the source and the destination Agent must have sufficient resources. Otherwise, the File Transfer cannot be executed.

Defining Workload Balancing in Agents

  1. As an administrator user, specify the default resources allocated to an Agent.

    Agents have a resource pool that you define in the predefined system VARA object (UC_HOSTCHAR_DEFAULT). This VARA object assigns Agents the number of resources that it can consume during the execution of each Job and File Transfer object.

    You probably have created various copies of this VARA object, one per Agent. These instructions use UC_HOSTCHAR_DEFAULT as name of the VARA object. In your case, enter the name of the VARA object created for the Agent that you want to configure.

    1. Log on to Client 0.
    2. Enter UC_HOSTCHAR_DEFAULT in the Global Search box and press Enter, see Global Search.
    3. Click the link to the VARA object that is displayed in the list.
    4. In the WORKLOAD_MAX_FT and WORKLOAD_MAX_JOB keys, enter the resources you want to allocate.

    For information about how to configure the VARA object and what are the allowed values, see UC_HOSTCHAR_DEFAULT - Host Characteristics.

  2. Open the Administration perspective and go to the list of Agents.
  3. Right-click the Agent you want to configure and select Advanced Options.
  4. In Workload Balancing enter the resources you want to allocate to Jobs and File Transfers that are procesed by tis Agent.
  5. Click Apply.

Ignoring the Allocated Resources

If necessary, you can execute a task that is waiting for resources despite the settings in the Agent. You have two possibilities:

  • Open the Process Monitoring perspective, right-click the task and select Ignore Agent Resources.
  • Use the the MODIFY_UC_OBJECT script function.

The resource value in the Agent is ignored. The resources defined at object level are consumed and the maximum resource value defined for the Agent is temporarily exceeded.

Specifying the Maximum Number of Simultaneous Executions at Object Level

You can specify a limit to the number of task that can be executed simultaneously by an Agent.

  1. In the UC_SYSTEM_SETTINGS variable ensure that Jobs and File Transfers consume 1 of the available resources (WORKLOAD_DEFAULT_FT and WORKLOAD_DEFAULT_JOB keys).
  2. On the Attribues page of the Job and File Transfer object definition, enter 0 in Consume <x> resources (Runtime Parameters section).
  3. In the UC_HOSTCHAR_DEFAULT variable enter the maximum number of Jobd and File Transfers that can be processed simultaneously.

See also: