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.
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.
If a process exceeds the PSL instruction limits, the agent performs the following tasks:
PSL may be in an infinite loop
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.
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:
Note
When monitoring applications with many instances, you may need to increase the default settings.
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 |
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 |