Pool of I/O Server Processes

<< Click to Display Table of Contents >>

 

Pool of I/O Server Processes

In applications with hundreds of Drivers, all resources needed to execute I/O Server processes for each Driver may consume operating system's capacity. In these cases, it may be necessary to enable the IOServer Processes Pool group on Properties tab of a Domain configuration.

When this Pool is enabled, each I/O Server process can execute more than one Driver, then saving operating system's resources and thus allowing an application to execute thousands of Drivers.

Only Drivers supporting the creation of new dynamic instances, that is, Drivers compiled with IOKit version 2.0.6 or later, can be used in this Pool. If a Driver without support is added to this Pool, it is not executed, that is, it fails. For these cases, configure I/O Driver's DisableIOServerPool property to True, so that it executes outside this Pool, in an exclusive I/O Server process.

On the Properties tab of a Domain configuration, users can control the maximum number of I/O Server processes in this Pool, as well as the maximum number of Drivers that execute on each I/O Server.

Behavior options for a Pool of I/O Server Processes

Drivers per Process

Maximum Number of Processes

Pool's Behavior

0

M

As application Drivers are activated, an I/O Server process is created for each Driver, up to the maximum number M. After that, every new Driver activated is added to Pool's I/O Driver that contains less Drivers

N

0

As application Drivers are activated, Elipse E3 adds them to a Pool's I/O Server process that has not reached the maximum number N of Drivers executing in it. If all Pool processes reached their maximum limit, then a new I/O Server is added to that Pool

N

M

As application Drivers are activated, Elipse E3 adds them to a Pool's I/O Server process that has not reached the maximum number N of Drivers executing in it. If all Pool processes reached their maximum limit, this behavior then depends on the number of processes in that Pool, and if the number of Pool processes is less than the maximum M, then a new process is added to that Pool. Otherwise, a Driver is added to the process with less Drivers executing. NOTE: In this mode, the maximum number of Drivers per process (N) can be surpassed in case the total number of application Drivers exceeds N * M

 

NOTES

When grouping Drivers in the same I/O Server process, the isolation among these Drivers is lost. This way, if one of these Drivers fails, that I/O Server is then closed and all Drivers executing in that I/O Server must be restarted.

There is a limit on the number of Drivers that can execute in an I/O Server process. This limit depends on several variables, such as operating system in use, amount of memory, threads, and resources that each specific Driver is using. Usually, users are not supposed to add more than 100 Drivers in a single I/O Server, because that may exceed operating system's limits.

Was this page useful?