2013-03-04 8 views
6

Z powodu geograficznej odległości między serwerem a siecią klienta opóźnienie może być bardzo różne. Więc chcę uzyskać "czysty" kontakt. czas przetwarzania usługi bez opóźnienia sieci.Jak obliczyć czas przetwarzania żądań HTTP bez opóźnień sieci?

Chcę uzyskać opóźnienie sieci jako czas połączenia TCP. O ile rozumiem, ten czas zależy w dużej mierze od sieci.

Główną ideą jest, aby obliczyć:

  • TCP czas łączący,
  • TCP pierwszy pakiet otrzymać czas
  • Get "czysta" czas service = TCP pierwszy pakiet odbioru (czas oczekiwania) - TCP łączący .

Dzielę połączenie TCP przez 2, ponieważ w rzeczywistości są 2 żądania odpowiedzi (3-drożne uzgadnianie).

Mam dwa pytania:

  1. powinienem obliczyć wszystkie pakiety TCP otrzymać czas, a nie tylko pierwszego pakietu?
  2. Czy ta metoda jest ogólnie dobra?

PS: Jako narzędzie używam gen_tcp Erlanga. Mogę pokazać kod.

+0

Czy można uruchomić klienta w tej samej sieci LAN (lub nawet na tym samym komputerze), co serwer? Wtedy opóźnienie sieci powinno być prawie nieistotne. – Barmar

+0

Czy uruchomiono 'tcpdump' na serwerze jako opcję? – Barmar

+0

Nie. Badam zdalne serwisy internetowe. – Dimitry

Odpowiedz

4

Jeśli w ogóle, domyślam się, że "czysty" czas usługi = TCP pierwszy pakiet odbiera - połączenie TCP .. Napisałeś coś innego.

Możliwą odpowiedzią na pierwsze pytania jest to, że najlepiej byłoby obliczyć co najmniej średnią, biorąc pod uwagę czysty czas obsługi wielu pakietów, a nie tylko pierwszego pakietu.

Idealnie może również mieć najgorszy przypadek, przeciętny przypadek, najlepszy czas obsługi zgłoszenia.

W przypadku drugiego pytania, na które należy udzielić odpowiedzi, potrzebowalibyśmy uzasadnienia, dlaczego potrzebowaliby Państwo wyłącznie czasu pracy. Mam na myśli, ponieważ jest to aplikacja sieciowa, opóźnienia sieciowe (czas połączenia itp.) Powinny również być uwzględnione w "czasie odpowiedzi", a nie tylko w czystym czasie usługi. Taka jest moja opinia oparta na danych informacjach.

+0

Dziękujemy! Potrzebuję czasu obsługi tylko z powodu dużej odległości geograficznej między klientami, usługami i aplikacjami, które sugerują usługi internetowe. Sugestia jest oparta na różnych kryteriach: dostępność, opóźnienie, koszt itd. Tak więc moja aplikacja może uzyskać błędne oszacowanie czasu oczekiwania usługi sieciowej, jeśli nie wyeliminuję części opóźnienia sieciowego. – Dimitry

+0

I tak, mam na myśli czas oczekiwania - połączenie TCP. Dziękuję Ci. – Dimitry

Powiązane problemy