KBI 310233 Argent for VMware Excessive CPU When Using Dynamic Monitoring Pool

Version

Argent for VMware 2.0A-1010-C and below

Date

2 Nov 2010

Summary

Argent for VMware may cause excessive CPU even when Relators are executed with the ‘Dynamic‘ pooling option.

Technical Background

A coding error in 2.0A-1010-C and all previous versions causes isolated Monitoring Engine processes to be used in some cases, even when the Dynamic shared pooling option is enabled.

When the Dynamic option is used, Argent for VMware will choose one of the available pools to use.

Say the pool size is 3, Argent for VMware will allocate tasks into the shared pools 1, 2, and 3. However, the issue occurs because Argent for VMware may also erroneously allocate tasks into pool zero, which is reserved for isolated/non-shared pools.

As a result, there will be a 1 in 4 chance that an isolated Monitoring Engine process is used.

When such a process is spawned, CPU usage may spike on machines that are doing heavy monitoring.

Resolution

This is fully addressed in Argent AT 2.0A-1010-T1 or above.

The workarounds for the existing production version include:

  1. Specify a fixed pool (e.g. Pool #1, Pool #2, etc.) instead of Dynamic pools in a Relator.
  2. Make the pool size larger. For instance, 15 instead the default 3. This reduces the probability that an isolated Monitoring Engine process will be used (from 1 in 4 to 1 in 16).