pd.log.EventPool.queue component

The pd.log.EventPool.queue component is the main event propagation queue. Use the statistics interface to monitor:
  • The queuing profiles that are configured for the main propagation queue.
  • Each file agent.
  • Remote agent.
  • Pipe log agent.

Each queue that is created as an instance of the EventQueue object registers itself with the statistics subsystem with its category name. The category name is constructed from the logging agent type and the pd.log string.

The following example shows the output from a stats get command for the pd.log.EventPool.queue component:
#pdadmin> server task ivacld-instance stats get \
  pd.log.EventPool.queue

dispatcher wakes on timeout (20) : 3617
dispatcher wakes by notify : 0
   notifies above highwater (100) : 0
   notifies below highwater : 0
   spurious notifies : 0
total events processed : 24
average number of events handled per activation : 1
greatest number of events handled per activation : 7
blocks in queue requests : 0
In the previous output:
  • The flush frequency for the queue is 20, the value that is denoted in the parentheses after timeout.
  • The high water setting for the queue is 100, the value that is denoted in the parentheses after highwater.
The settings that are defined for the various queue configuration options must attempt to balance:
  • The maximum amount of memory that is consumed between queue activations, and
  • The rate at which a particular log agent can consume events.

Set the queue high water mark such that the number of events that are processed during a queue activation fills a processing time slice. This setting avoids unnecessary thread context-switching. However, setting these options to large values is not productive. The reason is that event log processing must be done at some point and cannot be deferred indefinitely. Consuming large amounts of memory has its own drawbacks.