Je voudrais mesurer la latence du réseau pour la demande SNMP GET. Il existe un outil de ligne de commande gratuit time
qui peut être utilisé pour trouver des statistiques de synchronisation pour diverses commandes. Par exemple, il peut être utilisé avec snmpget
de la manière suivante:
$ 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
Selon le manuel, les statistiques comprennent:
le temps réel écoulé entre l'invocation et la fin,
le temps CPU de l'utilisateur (la somme des
valeurs tms_utime et tms_cutime dans une structure tms renvoyée par
times (2)),le temps CPU du système (la somme des
valeurs tms_stime et tms_cstime dans une structure tms renvoyée par
times (2)).
Comme vous le voyez, aucune de ces options ne permet de mesurer le temps de latence réel du réseau (à l'exclusion des autres statistiques de temps d'exécution du programme). Existe-t-il un moyen de le faire? Peut-être n'utilisant pas l'outil de temps, mais plutôt des hacks du noyau?
Je voulais demander, avant de commencer à écrire mon propre programme.
Merci, Piotr
la source
-ttttt
peut également être utile - au lieu d'afficher les microsecondes depuis le dernier paquet, il affiche les microsecondes depuis le début de la trace.Essayez ping:
Depuis le manuel ping:
la source
Exécutez votre programme et en attendant capturez le trafic réseau avec
tcpdump
ouwireshark
. Vérifiez l'heure de la demande et de la réponse et effectuez une soustraction simple.la source