Dados obtidos do ping: é ida e volta ou só ida?

Dados obtidos do ping: é ida e volta ou só ida?

Tenho 2 servidores, cada um em dois locais separados. Preciso hospedar um aplicativo em um e o servidor de banco de dados no outro.

No servidor de aplicativos, se eu executar ping no servidor de banco de dados, recebo em média cerca de 30 ms.

Minha pergunta é:

When I query the database from the app;

Será que vai demorar30 ms + database_server_query_run_time

Ou;

Será que vai demorar30 ms + database_server_query_run_time+ 30ms

Eu gostaria de entender isso, por favor.

Responder1

Geralmente levará mais do que essas duas opções.

O Ping mede apenas o tempo do cliente ao servidor e vice-versa (rtt - tempo de ida e volta)

Normalmente os bancos de dados usam TCP, então primeiro você precisa enviar um pacote SYN para iniciar o handshake TCP (para simplificar, digamos 15ms* + tempo de CPU, então você recebe um SYN/ACK (15ms+tempo de CPU), envia de volta um ACK e um solicitação (pelo menos 15ms + tempo de CPU), depois o tempo para o banco de dados processar a consulta e, em seguida, o tempo (15ms + CPU) para recuperar os dados e um pouco mais para confirmar e fechar a conexão.

É claro que isso não conta a autenticação (nome de usuário/senha) no banco de dados e nenhuma criptografia (handshakes SSL/DH ou o que for necessário).

*metade do tempo de ida e volta, assumindo que a rota de ida e volta seja simétrica (metade do tempo para chegar lá e metade para voltar... o tempo de processamento da CPU para resposta do ping é muito curto)

Responder2

O tempo de ping é de ida e volta. Se você pensar sobre isso - como poderia medir o tempo de ida? Portanto, levará 30 ms mais o tempo de consulta.

Responder3

O tempo de ping representaria todos os três juntos, portanto incluiria o tempo do aplicativo ao servidor de banco de dados, o tempo que a consulta ao banco de dados levou para ser concluída (já que cria o carimbo de data e hora para a resposta após a conclusão da consulta) e o tempo que levou em trânsito de volta ao servidor de aplicativos de ida e volta.

Então, resumindo, ping é o tempo de ida e volta com tudo incluído que levou desde o envio de um pacote até sua resposta chegando de ida e volta.

O "ping" de um serviço geralmente é medido na média de vários pings, portanto, um ping pode significar um único pacote enviado ou pode estar se referindo ao valor médio de todos os tempos de ida e volta. E então, se você pegasse o valor do tempo de ida e volta do ping dos últimos 100 pacotes e todos juntos eles tivessem uma média de 30ms, então você diria "ele tem um ping de 30ms".

informação relacionada