Page tree
Skip to end of metadata
Go to start of metadata

The PATROL Agent is a single-threaded program that runs a set number of instructions for a process. If the process does not finish after those instructions have been completed, the agent suspends that process and runs one or more other processes. Then, based on the agent's internal schedule, it returns to finish the suspended process.

The PSL instruction limits work within this mode of operation to ensure that instruction-intensive processes do not monopolize the agent.

PSL instruction limits operation

The PATROL Agent instruction limits control how many PSL instructions the agent will run within a certain time period for a particular PSL process before it "slows down" the process. The agent slows down its execution of a particular process by inserting a delay into the internal schedule. The delay increases the amount of time that the agent spends on other processes, reducing the chances that the agent will run the maximum number of instructions in a particular process within the specified time period.

Exceeding the limit

If a process exceeds the PSL instruction limits, the agent performs the following tasks:

  • Writes this message to the PATROL error log: PSL may be in an infinite loop
  • Slows down the speed with which it runs the process as described above

Internal delay

The agent slows down the processing of a PSL command by adding an internal scheduling delay of 200 milliseconds. The agent adds this delay to the amount of time between instruction execution cycles as it goes round-robin style from PSL command to PSL command in the PSL run queue. 

Each time the process exceeds the limit during the same execution cycle, the agent adds another delay of 200 milliseconds. This behavior continues until the execution cycle ends. After the delay, the job is returned to the PSL run queue and uses the standard interval.

Increasing the limit

The PSL instruction limit is a ratio of instructions per time period. To increase the limit and reduce the chances of incurring a delay, you can do one of the following tasks:

  • Increase the number of instructions
  • Decrease the time period

Note

When monitoring applications with many instances, you may need to increase the default settings.

Maximum number of instructions

The /AgentSetup/AgentTuning/pslInstructionMax configuration variable specifies the maximum number of instructions that the agent can run for a single PSL process within a certain time period without incurring an internal scheduling delay. 

To enable the pslInstructionMax configuration variable, assign the required positive value.

Format and type of data

Numeric, instructions

Default value

0

Minimum and maximum

0, none

Dependencies

/AgentSetup/AgentTuning/pslInstructionPeriod specifies the time period within which the instructions must be run

Recommendation

None

Time period for instruction execution

The /AgentSetup/AgentTuning/pslInstructionPeriod configuration variable specifies the time, in seconds, in which the agent can run the maximum number of instructions for a single PSL process without incurring an internal scheduling delay. 

A value of 0 for pslInstructionPeriod means that the PSL process can run without incurring a delay. 

To enable the pslInstructionPeriod configuration variable, assign the required positive value.

Format and type of data

Numeric, seconds

Default value

0

Minimum and maximum

0, none

Dependencies

/AgentSetup/AgentTuning/pslInstructionMax specifies the maximum number of PSL instructions the agent can run in the time period designated by this variable

Recommendation

None


  • No labels