web-dev-qa-db-ja.com

pingから取得したデータ:往復ですか、それとも片道ですか?

サーバーが2つあり、それぞれ2つの別々の場所にあります。一方でアプリケーションをホストし、もう一方でデータベースサーバーをホストする必要があります。

アプリサーバーからデータベースサーバーにpingを実行すると、平均で約30ミリ秒かかります。

私の質問は:

When I query the database from the app;

かかりますか30 ms + database_server_query_run_time

または;

かかりますか30 ms + database_server_query_run_time + 30ms

これを理解したいのですが。

28
Phil

通常、これらの2つのオプションよりも多くのオプションが必要です。

Pingは、クライアントからサーバーまでの時間と、その時間を測定します(rtt-往復時間)

通常、データベースはTCPを使用するため、最初にSYNパケットを送信してTCPハンドシェイクを開始する必要があります(簡単にするために、15ms * + cpu時間としましょう)、SYN/ACK(15ms + cpu時間)、ACKと要求(少なくとも15ミリ秒+ CPU時間)、次にDBがクエリを処理する時間、次にデータを取得する時間(15ミリ秒+ CPU)、そしてもう少し確認する、接続を閉じます。

これはもちろん、データベースへの認証(ユーザー名/パスワード)をカウントせず、暗号化(sslハンドシェイク/ DHまたは必要なもの)をカウントしません。

*往復時間の半分、経路が対称的であると想定(経路の半分と経路の半分... ping応答のCPU処理時間は非常に短い)

24
mulaz

Ping時間は往復です。あなたがそれについて考えるなら、それはどのように一方向の時間を測定できますか?したがって、30ミリ秒とクエリ時間を要します。

7
David Schwartz