Pool de Processos do Servidor de I/O

<< Clique para Mostrar o Sumário >>

 

Pool de Processos do Servidor de I/O

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

Quando este Pool está habilitado, cada processo de Servidor de I/O 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 de Servidor de I/O exclusivo.

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

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

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 de Servidor de I/O para cada Driver, até atingir o número máximo M. Depois deste ponto, cada novo Driver que é ativado é adicionado ao Servidor de I/O do Pool que contém a menor quantidade de Drivers

N

0

À medida que os Drivers da aplicação são ativados, o Elipse Power os adiciona a um processo de Servidor de I/O 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 Servidor de I/O é adicionado ao Pool

N

M

À medida que os Drivers da aplicação são ativados, o Elipse Power os adiciona a um processo de Servidor de I/O 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 da aplicação exceda N × M

 

NOTAS

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

Existe um limite no número de Drivers que podem executar em um processo de Servidor de I/O. 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 Servidor de I/O, sob pena de exceder os limites do sistema operacional.

Esta página foi útil?