Performing load balancing based on available free memory
In this scenario, an optimization policy is defined to balance the distribution of a set of jobs between resources based on total physical memory available on each resource.
Business Goal
A
company wants to set up job definitions for a group of jobs that must
run at about the same time on similar AIX® computers.
To ensure that the jobs are efficiently distributed between available
resources, each job definition includes an optimization objective
to maximize the free physical memory. When the jobs are submitted,
a policy is applied to distribute the jobs between the available resources
according to the amount of free physical memory on each resource.
All matching resources are considered and the load is balanced proportionally
between them, using a policy that allocates more jobs to those resources
having higher amounts of free physical memory.
This policy is applicable when a set of jobs are clearly affected by a specific type of resource (CPU usage, available memory, available disk space) and are to be run with a high degree of parallelism.
- The administrator has a set of jobs that must be run on AIX machines and that have specific physical memory requirements. This requires that the job is sent to a machine with low physical memory utilization. Several computers are available, each with an equivalent software configuration but with differences in hardware characteristics and actual load. He creates a job definition for each of the jobs and specifies that the job must run on AIX, has an objective of type Balance load between resources by optimization objective and should be optimized with the policy Maximize FreePhysicalMemory.
- The administrator uses theDynamic Workload Console to submit or schedule the jobs for submission.
Roles
This section lists the user roles
needed to run the scenario:
- dynamic workload broker Developer
- Defines the jobs using the Job Brokering Definition Console
- dynamic workload broker Operator
- Monitors and controls the jobs that have been submitted.
- HCL Workload Automation Job Scheduler
- Manages Tivoli® Workload Scheduler workload by submitting and monitoring jobs.
Software requirements
The following software must be installed and configured, before running this scenario:- A HCL Workload Automation version 8.5.1 network with the dynamic scheduling capability.
- Optionally, Dynamic Workload Console version 8.5.1.
Setting up the environment
To run this scenario you must install or upgrade to HCL Workload Automation version 8.5.1. Complete the tasks described in Setting up your environment for dynamic scheduling.
Running the Scenario
To create a job definition that uses optimization policies, perform the following steps:
Procedure
Expected Results
When the jobs are submitted, they are sent to the available computers
in proportion to the amount of available free physical memory. If,
for example, the snapshot of the currently available free physical
memory is the following:
and 11 jobs are submitted within a time slot, the following
proportional distribution can occur:
Computer A | Computer B | Computer C |
---|---|---|
2048 Mbytes | 3072 Mbytes | 512 Mbytes |
Computer A | Computer B | Computer C |
---|---|---|
4 jobs | 6 jobs | 1 job |
Sample Configuration file
The JSDL file created for this scenario has the following
syntax:
<?xml version="1.0" encoding="UTF-8"?>
<jsdl:jobDefinition xmlns:jsdl="http://www.ibm.com/xmlns/prod/scheduling/1.0/jsdl"
xmlns:jsdle="http://www.ibm.com/xmlns/prod/scheduling/1.0/jsdle"
name="jobBalancedbyAvailRAM">
<jsdl:variables>
<jsdl:stringVariable name="myApp">sleep</jsdl:stringVariable>
</jsdl:variables>
<jsdl:application name="executable">
<jsdle:executable interactive="false" path="${myApp}">
<jsdle:arguments>
<jsdle:value>30</jsdle:value>
</jsdle:arguments>
</jsdle:executable>
</jsdl:application>
<jsdl:resources>
<jsdl:candidateOperatingSystems>
<jsdl:operatingSystem type="AIX"/>
</jsdl:candidateOperatingSystems>
</jsdl:resources>
<jsdl:optimization name="JPT_JSDLOptimizationPolicyType">
<jsdl:objective propertyObjective="maximize"
resourcePropertyName="FreePhysicalMemory" resourceType="OperatingSystem"/>
</jsdl:optimization>
</jsdl:jobDefinition>