Chciałbym zmierzyć opóźnienie sieci dla żądania SNMP GET. Istnieje bezpłatne narzędzie wiersza poleceń, time
którego można użyć do znalezienia statystyk czasowych dla różnych poleceń. Na przykład można go używać snmpget
w następujący sposób:
$ time snmpget -v 2c -c public 192.168.1.3 .1.3.6.1.2.1.2.2.1.10.2
IF-MIB::ifInOctets.2 = Counter32: 112857973
real 0m0.162s
user 0m0.069s
sys 0m0.005s
Zgodnie z instrukcją statystyki obejmują:
upływ czasu rzeczywistego między wezwaniem a rozwiązaniem umowy,
czas procesora użytkownika (suma wartości
tms_utime i tms_cutime w struct tms zwracana przez
times (2)),czas procesora systemu (suma wartości
tms_stime i tms_cstime w struct tms zwracana przez
times (2)).
Jak widać, żadna z tych opcji nie pozwala zmierzyć rzeczywistego czasu opóźnienia sieci (z wyłączeniem innych statystyk czasu wykonania programu). Czy jest na to jakiś sposób? Może nie używasz narzędzia czasu, ale raczej hacków do jądra?
Chciałem zapytać, zanim zacznę pisać własny program.
Dzięki, Piotr
źródło
-ttttt
może być również przydatny - zamiast pokazywać mikrosekundy od ostatniego pakietu, pokazuje mikrosekundy od początku śledzenia.Spróbuj ping:
Z instrukcji ping:
źródło
Uruchom program, a tymczasem przechwytuj ruch sieciowy za pomocą
tcpdump
lubwireshark
. Sprawdź czas żądania i odpowiedzi i wykonaj proste odejmowanie.źródło