Self monitor tracks the time processes are in busy or sleep state by keeping the number of system ticks the process have spent in idle/busy state for each second during the last minute. Once per second self monitor updates process statistics according to the current process state and the ticks passed during the last process state update.
When a process enters either busy or sleep state it updates it's state and current idle/busy statistics in self monitor cache. Normally process updates its state when entering/leaving sleep mode (for at least 1 second).
However listening processes (trappers, processes using socket based communications) can't predict the time they will spent in idle state (waiting for data). Those processes update self monitor statistics each time they are entering/leaving receive (listen) mode. Each update locks self monitor cache and can negatively impact the performance.
To reduce self monitor cache locking the statistics must be cached locally and flushed to self monitor cache regularly.