KBI 310232 CPU Spikes When Running Argent For VMware Rules
Version
Argent Advanced Technology – All versions
Date
21 Oct 2010
Summary
The CPU spikes to 90 – 100% when Argent for VMware Rules are executed.
Technical Background
Argent for VMware provides two methods of executing tasks.
A new process can be spawned for each task, or a shared process can be used when executing the task.
In Argent for VMware, there are implications to consider when using either process, which differ from the traditional arguments seen in Argent XT.
VMware PowerShell uses a lot of resources when connecting to vCenter. VMware PowerShell is also designed to restrict the number of connections that can be made in a single process.
VMware is aware of these design issues, and Argent has provided a number of ways to circumvent these VMware issues.
Spawn New Monitor Engine Process
For each task, a new process is spawned. This allows tasks to execute concurrently, e.g. in parallel.
However, this also increases the resource usage of creating new processes, and creating new initial connections to VMware.
Use Shared Monitor Engine Process Pool
For each task, a shared process pool is re-used. This re-uses open connections to VMware which significantly reduces the load.
However, it introduces a new load when there are many tasks trying to execute at the same time, creating a queue in the shared process pool.
Each task is also executed sequentially, as only a single VMware connection can be made per process.
Argent for VMware assigns three shared process pools by default. You can specify the exact process pool to use (Pool #1, Pool #2, Pool #3), or you can use the {Dynamic} option, which dynamically allocates the task to the next freed up Pool.
In other words, under the default settings, and when {Dynamic} is used with shared process pools – up to three simultaneous tasks can be executed at one time – the rest will be queued.
Resolution
Changing to Use Shared Monitor Engine Process In Pool will always significantly save on resources.
However, when there are many monitoring tasks occurring at the same time, you can increase the total number of shared process pools by going to Administration, Supervising Engine, and changing the Shared Monitor Engine Process Pool Size.
Example: From 3 to 15.
This simply means that 15 tasks can simultaneously execute instead of 3.
After making this change, you can see that this has taken effect by going back to your Relator.
You’ll see the number of Pools have increased to what you specified: