Previous page

Next page

Locate page in Contents

Print this page

Pool and Single Operators

For on-demand requests, the director provides pools of operators that are being forked and cached as necessary. For example, the server management operator can simultaneously serve up to 4 Virtuozzo Container creation processes, up to 10 Container stops, and up to 20 Container configuration fetches by default. It means that the director forks another server management operator if all of the existing operators are busy. This works up to a certain limit, after which the next incoming message is queued and its processing begins when one of the existing operators becomes available.

Pools are strictly concerned with a particular operator and don't intersect in any way. As an example, the computer management operator pool never interferes with the server management pool. Any pool consists of two sets of operators. One set is comprised of the busy operators and the other contains the operators that are currently available. A new incoming message is sent to one of the available operators. The status of the operator is immediately switched from "available" to "busy". Upon completion, the status of the operator is switched to "available" unless the total number of operators in the pool has already reached the pool limit, in which case the operator instance is destroyed.

Static limits of pools (limits that are not changed with time unless Agent is reconfigured) consist of three values - one for each message class. The "heavy" limit allows no more heavy messages to be simultaneously run than the number represented by its value. The "total" limit does the same thing for normal plus heavy messages. And the "urgent" limit restricts the number of urgent + normal + heavy messages. Emergency messages are not limited. All this means that messages of all types are considered together and if a pool is partially busy with heavy messages, the number of normal messages to run is reduced, too. Operators for urgent messages are invoked even if the total limit is reached - that will only make the pool shrink back after the completion of any requests to a value not greater than the total limit.

The other type of operators are the single operators. These operators run at all times. Unlike the pool operators, they never fork additional processes. This type of operators include the periodic collectors (the operators that collect the data on a periodic basis), the event reporters (the operators that notify the client of the important system events), and some others.

Please send us your feedback on this help page