Direct agent thread pool

Used for sending commands directly to the HVs like start/stop VMs etc. Also used for sending commands to other resources like network providers etc. The size of the pool is configurable using "direct.agent.pool.size" configuration parameter. Default for this parameter is 500.

In the MS logs tasks handled by these threads starts with DirectAgent-

Direct agent connect task thread pool

Used for handling connect/disconnect for direct agents. This is used when a new host (managed by direct agents) gets added or removed and also when MS is restarted. The size of the pool is configurable using "direct.agent.load.size" configuration parameter. Default is 16.

In the MS logs tasks handled by these threads starts with AgentTaskPool-

Indirect agent connect task thread pool

Used for handling connect/disconnect for indirect agents like SSVM, CPVM and KVM. These are called indirect agents as they talk to the agent process running on SSVM, CPVM, KVM host. The size of the pool is not configurable and set to 100 with a upper bound of 500 (this should be made configurable as well).

In the MS logs tasks handled by these threads starts with AgentConnectTaskPool-

Indirect agent communication thread pool

Used for indirect agent communication on port 8250. The size of the pool is based on "workers" configuration parameter. The formula used for arriving at thread pool size is: size = (workers + 10) * 5. Default value of "workers" parameter is 5 and so the default pool size is 75. This is also present in the agent JVM process in SSVM, CPVM and KVM hosts.

In the MS logs tasks handled by these threads starts with AgentManager-

"workers" parameter is used by thread pools on:

1. MS for communication with SSVM/CPVM/KVM/clustered MS agents (running in MS JVM)
2. SSVM/CPVM/KVM for communication with MS (running in agent JVM)

Ideally all indirect agent command processing should be handled by a new thread pool and not by the NIO worker threads (AgentManager- ).