Important

   

This documentation space contains information about PATROL Agents when deployed in a BMC Helix Operations Management environment. If you are a TrueSight Operations Management user, see PATROL Agent 20.08.

Load balancing the PATROL Agent

Load balancing the PATROL Agent involves setting the agent's internal run queue and managing which applications and instances are monitored and which parameters are run. This section describes how to set the agent's internal run queue. For information about how to manage applications, see Loading and monitoring applications.

PATROL Agent's scheduling policy

The /AgentSetup/AgentTuning/runqSchedPolicy variable defines the policy used for scheduling jobs that are placed on the Main Run Queue. Combining one or more of the following scheduling criteria by forming a sum of values defines the scheduling policy.

Values

RunQ ValuePolicy NameStrategy
1

SCHED_FROM_END

SCHED_DEFAULT
Next execution = finish time + poll time
2SCHED_FROM_PREVNext execution = last execution time + poll time
4SCHED_OPTIMALrecalculate optimal scheduling upon completion of each job. The expensive calculation that tries to find a slot that is furthest from its neighbor.
8SCHED_FORCE_DELTAForce an interval of RUNQ_DELTA between executions.

Default Value

1

Minimum and maximum

1, 15

Dependencies

None

Recommendation

If the value is set to 1, the scheduling algorithm schedules execution of a job based on the ending time of its previous execution.

If the value is set to 2, the scheduling algorithm schedules execution based on the start time of the previous execution.

By setting the scheduling policy to SCHED_FROM_END you will slow down the rate at which parameters really execute.  A parameter's next execution is scheduled from the time at which it completed, not from the time at which it last executed (which is the default).  This means that no matter what we will leave a one-interval breather between successive executions of a parameter.

Values of 1 and 2 are mutually exclusive.  If runqSchedPolicy is set to 1 or 2, the scheduling algorithm forces a spacing of RUNQ_DELTA seconds between execution times of jobs in the Main Run Queue.  runqMaxDelta represents the maximum number of seconds that a job will be delayed from its “ideal” execution time.

If the value is set to 4 (SCHED_OPTIMUM), it causes the Agent to use an algorithm that attempts to find the “optimal” execution time by scheduling execution at a time that is furthest from its neighbors. It instructs the Agent to recalculate the runq slot after each execution.

If the value is set to 8 (SCHED_FORCE_DELTA), the scheduling algorithm schedules execution of consecutive jobs that are at least RUNQ_DELTA apart and RUNQ_MAX_DELTA does not apply. This value should be set only after other measures such as changing poll times of various parameters have failed to reduce Agent load.

With all of the other scheduling policies, the agent is allowed to schedule more than one parameter to start executing at the same time.  With RUNQ_FORCE_DELTA the agent will not schedule more than one parameter for execution at the same time.  Furthermore, it will not schedule the execution of another parameter until RUNQ_DELTA seconds from the start time of the last parameter. The impact of this is that if all parameters take less than 8 seconds (the default for RUNQ_DELTA) to run then this would mean that you would never see more than one parameter at a time being run by the agent.

Interval between internal processes

The /AgentSetup/AgentTuning/runqDelta configuration variable specifies the gap (in seconds) between processes in the PATROL Agent's run queue.

Format and type of data

Numeric, seconds

Default value

8

Minimum and maximum

1, none

Dependencies

None

Recommendation

None

Increment checking of internal process interval

The /AgentSetup/AgentTuning/runqDeltaIncrement configuration variable represents the increment (in seconds) used for checking for a gap in the Main Run Queue.  This variable affects the granularity of the search for the ideal slot in which to schedule a process in the Main Run Queue.  The smaller the value, the finer the search for the perfect time to schedule a job and the greater the processing required.  Default is 2. (Must be less or equal to RunqDelta)

Format and type of data

Numeric, seconds

Default value

2

Minimum and maximum

1, must be less than or equal to the runqDelta

Override

None

Dependencies

None

Recommendation

None

Maximum delay of an internal process

The /AgentSetup/AgentTuning/runqMaxDelta configuration variable specifies the maximum delay (in seconds) for a process. The runqMaxDelta represents the maximum number of seconds that a job will be delayed from its "ideal" execution time.

Format and type of data

Numeric, seconds

Default value

40

Minimum and maximum

10, none

Override

None

Dependencies

None

Recommendation

None

Was this page helpful? Yes No Submitting... Thank you

Comments