it-swarm.com.de

Daten von Ping erhalten: Ist es Hin- und Rückfahrt oder eine Möglichkeit?

Ich habe 2 Server, jeder an zwei verschiedenen Orten. Ich muss eine Anwendung auf einer und den Datenbankserver auf der anderen Seite hosten.

Wenn ich vom App-Server aus den Datenbankserver anpinge, erhalte ich durchschnittlich 30 ms.

Meine Frage ist:

When I query the database from the app;

Wird es dauern 30 ms + database_server_query_run_time

Oder;

Wird es dauern 30 ms + database_server_query_run_time + 30ms

Ich würde das gerne verstehen.

28
Phil

Normalerweise werden mehr als diese beiden Optionen benötigt.

Ping misst nur die Zeit vom Client zum Server und wieder zurück (rtt - Roundtrip-Zeit)

Normalerweise verwenden Datenbanken TCP, daher müssen Sie zuerst ein SYN-Paket senden, um den TCP Handshake) zu starten (zur Vereinfachung sagen wir 15 ms * + CPU-Zeit, dann erhalten Sie SYN/ACK (15 ms + CPU) Zeit), senden Sie eine ACK und eine Anfrage zurück (mindestens 15 ms + CPU-Zeit), dann die Zeit für die DB, um die Abfrage zu verarbeiten, und dann die Zeit (15 ms + CPU), um die Daten zurückzubekommen, und etwas mehr zu bestätigen und schließen Sie die Verbindung.

Dies gilt natürlich nicht für die Authentifizierung (Benutzername/Passwort) in der Datenbank und keine Verschlüsselung (SSL-Handshakes/DH oder was auch immer benötigt wird).

* Eine halbe Hin- und Rückfahrt, vorausgesetzt, die Route hin und zurück ist symmetrisch (die Hälfte der Zeit, um dorthin zu gelangen, und die Hälfte der Zeit, um zurück zu gelangen ... Die CPU-Verarbeitungszeit für die Ping-Antwort ist sehr kurz).

24
mulaz

Die Ping-Zeit ist Hin- und Rückfahrt. Wenn Sie darüber nachdenken - wie könnte es die Einwegzeit messen? Es dauert also 30 ms plus Abfragezeit.

7
David Schwartz