Como definir tempos limite de solicitação em cada salto de rede

Como definir tempos limite de solicitação em cada salto de rede

Estou tentando entender os tempos limite da rede e como eles devem ser definidos para cada salto de uma determinada solicitação. Para simplificar, não estou analisando um detalhamento dos tempos limite de conexão versus leitura versus gravação e assumirei que “tempo limite” significa “tempo total máximo permitido desde o primeiro pacote recebido até o último pacote enviado (ou vice-versa para o cliente). Digamos que eu tenha os seguintes saltos no meu fluxo de solicitação:

(client) --> (AWS ALB) --> (nginx) --> (server)

…e vamos supor que meu servidor esteja configurado para atingir o tempo limite após 10 segundos.

Minha pergunta: qual seria um conjunto válido de tempos limite para cada salto? Seria

// A
(client, 13s) --> (AWS ALB, 12s) --> (nginx, 11s) --> (server, 10s)

ou

// B
(client, 7s) --> (AWS ALB, 8s) --> (nginx, 9s) --> (server, 10s)

ou (C) outra coisa?

Obviamente, também estou interessado na lógica por trás de suas sugestões.

Responder1

Se você estiver observando tempos limites rígidos (você não declara a finalidade), cada estágio de processamento temmenostempo que o anterior. Então, basicamente, A é a abordagem correta.

No entanto, o caminho do cliente para AWSALB está além do seu controle e pode ser comparativamente longo/lento. Um segundo por passo parece muito generoso, então não há problema nisso. Mas se você diminuir isso para 50 ou talvez 100 ms por passo, o primeiro passo precisará de mais alocação.

informação relacionada