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: