HCL Workload Automation, Version 9.4

Resources in the job definition

This topic provides an overview of how resources and their properties are used in the job definition to identify possible targets, to reserve allocations of consumable resources, and to optimize load balancing between available resources.

An understanding of physical and logical resources and their properties is the key to creating a job definition that accurately targets suitable resources for running the job, determines the resource allocation requirement, and contributes to balancing the load between available resources. Each resource has one or more properties associated with it. Properties can have the following characteristics:
Is consumable
Properties of resources that are consumable have finite amount associated with them which can be consumed by the jobs that are allocated to the resource. For example, a computer system has a finite number of processors.
Can be optimized
Some properties can be used to define optimization objectives, which determine how load is to be balanced when jobs are allocated to a group of resources. For example, you could choose to allocate a job to the matching resource that has the lowest CPU usage.
Supports wildcards
Some properties can be specified in the job definition using wildcards. For example, a requirement for a particular series of computer models could be defined by specifying the model using wildcards.
Table 1 shows the different resource types that can be included in a job definition and their available properties.
Table 1. Resource types and properties
Resource Type Available properties Is consumable Can be optimized Supports wildcards
ComputerSystem CPUUtilization No Yes No
HostName No No Yes
Manufacturer No No Yes
Model No No Yes
NumOfProcessors Yes Yes No
ProcessingSpeed No Yes No
ProcessorType No No No
LogicalResource DisplayName No No Yes
SubType No No Yes
Quantity Yes Yes No
OperatingSystem DisplayName No No Yes
FreePhysicalMemory No Yes No
FreeSwapSpace No Yes No
FreeVirtualMemory No Yes No
OperatingSystemType No No No
OperatingSystem
Version
No No No
TotalPhysicalMemory Yes Yes No
TotalSwapSpace Yes Yes No
TotalVirtualMemory Yes Yes No
FileSystem DisplayName No No Yes
FileSystemRoot No No Yes
FileSystemType No No No
FreeStorageCapacity No Yes No
TotalStorageCapacity Yes Yes No
NetworkSystem NetworkAddress No No No
NetworkSystem
HostName
No No Yes
Resource properties can be used in the job definition in the following ways:
Identifying targets for the job
On the Resources page of the Job Brokering Definition Console, you can supply information about the resources required for the job. Using this information, HCL Workload Automation can identify the computer systems on which the job could run. In addition to the basic hardware and software requirements, you can use the Advanced Requirements tab to include requirements for specific resource properties. For example, you can add a requirement for a specific processor type or specify a required range of processor speeds. In the JSDL schema, the Resources page corresponds to the resources element.

When you define a resource requirement, the underlying relationship between the required resource and the computer system which contains the resource is automatically created by the Job Brokering Definition Console to facilitate the usage of the product.

Resource property requirements to be used when identifying targets for job can also be specified on the Related Resources page. A related resource includes the following resource types:
  • A set of hardware and software properties of a computer such as operating system, file system, and network system.
  • Logical resources, which are a flexible means of providing information about your environment in addition to the information collected by the hardware scan. For example, you could create logical resources to represent applications, groups, licenses, or database access. A logical resource can be linked to one or more specified computers or it can be a freestanding global resource, available to all computers.
Related resources have two main functions:
To specify additional requirements, making the matching criteria for possible targets more precise
Targets can only match if they either contain or are associated with the specified resource. In addition to defining the related resource in the job definition, you must also define its relationship to the target resource and specify the relationship type as contains or associates with. Related resource that define hardware and software properties always have a contains relationship while logical resources often have an associates with relationship. For example, if a related requirement for a logical resource that represents a node-locked license is included, the target system must be one of those that is associated with this resource, and therefore a target where the license is available.
To specify global resources that must be available for the job to run
These related resources are not related to the target resource and have no role in finding matching resources for the job to run on. The resource must be available to the job at submission time. For example, if a license required to run the software used by the job is of a type that is not assigned to any computer, a logical resource could be created to identify it and to track the number of licenses that exist and that are in use. No computers are associated with this logical resource and so it is referred to as a global resource, available to all computers. The job definition includes a related resource identifying the floating license logical resource and the number of licenses required. Before the job can run, it must be possible to meet this requirement.
In the JSDL schema, the Related Resources page corresponds to the relatedResources element.

When the resource requirements for the job are defined, logical rules are applied to determine whether the requirements are alternatives to each other (OR) or whether they are inclusive (AND). In general, the different types of requirements have an AND relationship, for example, if you specify an operating system type, CPU architecture, and a value for minimum physical memory, the target resource for the job must meet all of these requirements.

Within the following requirement types, you can specify alternatives that have an OR relationship:
  • Candidate hosts
  • Candidate CPU architectures
  • Candidate operating systems
If several entries are added for any of these requirement types, they are considered as alternatives. For example, if Linux, AIX®, and HP-UX are specified as candidate operating systems, the target resource for the job must have one of these operating system types.
Within the following requirement types, all requirements specified must be met by the target resource for the job.
  • Logical resources
  • File systems
For example, if you add Local Disk and CD ROM to the File system requirements, the target resource for the job must have both a local disk and a CD ROM.
Reserving resources
When defining the requirements for a job definition, you can define the amount of a consumable property which will be allocated to the job. When a resource property is allocated to a job, the amount you specify is logically reserved for the job. If another job is submitted which allocates a value greater than the remaining capacity of the same consumable property, this job cannot run on the same resource as the previous job because the required property is already reserved. If no property allocation is specified in the job definition, the job can run on the same resource as the previous job because the allocation mechanism applies only if both jobs allocate the same property.

You can use the allocation mechanism to limit concurrent use of the same quantity by several jobs and improve system performance.

On the Job Brokering Definition Console, you can allocate a specified quantity of a consumable property. You can use the allocation pane from the Advanced Requirements tab of the Resources page or you can define a required resource and property in the Related resource page and specify the amount of the property to be allocated. From the Advanced Requirements tab on the Resources page, you can only allocate consumable properties of computer system resources.

Defining load-balancing policies
You can use the Optimization page in the Job Brokering Definition Console to define custom rules for load-balancing to be applied when the job is submitted. The default method of load-balancing is to aim to equalize the number of jobs running on each resource.
Dynamic workload broker provides two types of optimization policy types that use rules based on resource properties:
  • Balance load between resources by optimization objective
  • Select best resource by optimization objective

For both policies, you define an objective to distribute jobs minimizing or maximizing the property of a computer system, a file system, a logical resource, or an operating system. For example, you could balance loads with the aim of keeping the free physical memory available on operating system resources as high as possible.

When the Balance load between resources by optimization objective policy is used, jobs are distributed between matching resources based on a statistical probability that the resource currently has highest amount of free physical memory of all matching resources. When the Select best resource by optimization objective policy is used, the job is allocated to the resource that has the highest amount of free physical memory.

When defining an objective, you must select a resource that is included in the job definition as part of the identification of targets for the job. For example, if you want to define the objective to minimize free physical memory, at least one operating system requirement must be included in the job definition. This could be candidate operating systems, a physical or virtual memory requirement, or a related requirement involving operating system properties. Computer system properties are the exception to this rule. Optimization objectives using computer system properties can be always defined even if the job definition includes no explicit computer system requirements.

For information about all available load balancing policies, see Job definitions.