Unsupported content This version of the documentation is no longer supported. However, the documentation is available for your convenience. You will not be able to leave comments.

Setting PSL instruction limits


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.

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.


 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*