Pool de Processos I/O Server

<< Clique para Mostrar o Sumário >>

 

Pool de Processos I/O Server

Em aplicações com centenas de Drivers, os recursos necessários para executar os processos I/O Server para cada Driver podem esgotar a capacidade do sistema operacional. Nestes casos, pode ser necessário habilitar o Pool de Processos IOServer na aba Propriedades da configuração do Domínio.

Quando este Pool está habilitado, cada processo I/O Server pode executar mais de um Driver, economizando desta forma recursos do sistema operacional e permitindo que uma aplicação chegue a executar milhares de Drivers.

Apenas Drivers que suportam a criação de novas instâncias dinâmicas, ou seja, Drivers compilados com o IOKit v2.0.6 ou superior, podem ser utilizados neste Pool. Se um Driver que não tem este suporte é adicionado ao Pool, este Driver não é executado, ou seja, falha. Para estes casos, configure a propriedade DisableIOServerPool do Driver de Comunicação para Verdadeiro para que este Driver execute fora do Pool, em um processo I/O Server exclusivo.

Na aba Propriedades da configuração do Domínio, pode-se controlar o número máximo de processos I/O Server no Pool, bem como o número máximo de Drivers que executam em cada I/O Server.

Opções de comportamento do Pool de Processos I/O Server

Drivers por Processo

Número Máximo de Processos

Comportamento do Pool

0

M

À medida que os Drivers da aplicação são ativados, é criado um processo I/O Server para cada Driver, até atingir o número máximo M. Depois deste ponto, cada novo Driver que é ativado é adicionado ao I/O Server do Pool que contém a menor quantidade de Drivers

N

0

À medida que os Drivers da aplicação são ativados, o E3 os adiciona a um processo I/O Server do Pool que ainda não tenha atingido o número máximo N de Drivers executando dentro do Pool. Se todos os processos do Pool estiverem no limite máximo, então um novo I/O Server é adicionado ao Pool

N

M

À medida que os Drivers da aplicação são ativados, o E3 os adiciona a um processo I/O Server do Pool que ainda não tenha atingido o número máximo N de Drivers executando dentro do Pool. Se todos os processos do Pool estiverem no limite máximo, o comportamento depende da quantidade de processos no Pool, e se o número de processos do Pool é menor que o máximo M, então um novo processo é adicionado ao Pool, caso contrário o Driver é adicionado no processo que tiver menos Drivers executando. NOTA: Neste modo, o número máximo de Drivers por processo (N) pode ser ultrapassado caso o número total de Drivers do aplicativo exceda N × M

 

NOTAS

Ao agrupar Drivers em um mesmo processo I/O Server, perde-se o isolamento entre estes Drivers. Desta forma, se ocorrer uma falha em um destes Drivers, o I/O Server é fechado e todos os Drivers que executavam naquele I/O Server têm de ser reiniciados.

Existe um limite no número de Drivers que podem executar em um processo I/O Server. Este limite depende de diversas variáveis, tais como o sistema operacional em uso, a quantidade de memória, threads e recursos que cada Driver específico está ocupando. Em linhas gerais, não se deve adicionar mais do que 100 Drivers em um único I/O Server, sob pena de exceder os limites do sistema operacional.

Esta página foi útil?