Glassfish Thread Pool, Fios Aceitadores, Conexões HTTP Máximas

Por favor, veja as imagens em anexo, Por favor, ajude-me a entender o relacionamento entre o pool de threads (tamanho máximo e mínimo do pool de threads), os threads dos aceitadores e sua contagem máxima de conexões e HTTP max.

Grupo de discussão :

insira a descrição da imagem aqui

HTTP:

insira a descrição da imagem aqui

Transporte TCP:

insira a descrição da imagem aqui

Primeiro vou te dar uma documentação oficial

Grupo de discussão

O conjunto de encadeamentos é o número máximo de solicitações simultâneas que o servidor pode manipular. O servidor tem uma fila de conexões aguardando para ser processada por um encadeamento.

Tenha em mente que um thread será longo da vida da solicitação. Ou seja, não apenas ao ler o pedido HTTP do soquete, ou ao escrever a resposta HTTP para o cliente, mas todo o tempo que ele está lidando com lógica de negócios, aguardando o DB terminar, gravando em um arquivo de log, enviando / recebendo WS mehtods, …

Leia: https://docs.oracle.com/cd/E18930_01/html/821-2431/abehk.html

Conexões máximas de HTTP

O HTTP Server está atendendo a solicitações de clientes e cada cliente possui uma fila de conexão associada na qual as solicitações são enfileiradas para serem processadas por um encadeamento do Pool de Encadeamentos .

Aqui é onde viver os threads aguardando para atender aos pedidos enfileirados.

Leia: https://docs.oracle.com/cd/E18930_01/html/821-2431/abegk.html

Encadeamentos do aceitador de transporte

É o número que informa quantos encadeamentos podem manter seu servidor no accept mode para cada soquete de escuta a qualquer momento. A documentação da Oracle recomenda que esse número seja menor do que o número de CPUs.

Ou seja, esse é o número de sockets que estão lendo / gravando simultaneamente. Você pode pensar em uma relação direta com o conjunto de encadeamentos, mas lembre-se de que um encadeamento não é apenas leitura / gravação de / para cliente, mas também para processamento de pedidos.

Leia: http://docs.oracle.com/cd/E18930_01/html/821-2431/gkxjt.html

Minha explicação

Assim, o seu servidor terá uma fila para cada cliente ( socket de escuta ) onde não pode haver mais do que o Max Connections . Essas conexões serão processadas por um Pool de Threads e, ao mesmo tempo, não poderão ser mais do que sockets aceitáveis ​​/ processando Threads do Acceptor .

Se uma solicitação do cliente estiver aguardando mais tempo, ela será rejeitada. Min Thread Pool garante que você tenha um mínimo de threads, pronto para processamento. E o Número Máximo de Conexões limita o total de sockets de escuta que você pode ter em espera. Se este último limite for excedido, novas conexões serão rejeitadas.

Espero que ajude.

Intereting Posts