Me gustaría medir la latencia de la red para la solicitud SNMP GET. Hay una herramienta de línea de comandos gratuita time
que se puede utilizar para buscar estadísticas de tiempo para varios comandos. Por ejemplo, se puede usar snmpget
de la siguiente manera:
$ 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
Según el manual, las estadísticas consisten en:
el tiempo real transcurrido entre la invocación y la terminación,
el tiempo de CPU del usuario (la suma de los
valores tms_utime y tms_cutime en una estructura tms tal como la devuelve
times (2)),el tiempo de CPU del sistema (la suma de los
valores tms_stime y tms_cstime en una estructura tms tal como la devuelve
times (2)).
Como puede ver, ninguna de estas opciones permite medir el tiempo real de latencia de la red (excluyendo otras estadísticas de tiempo de ejecución del programa). ¿Hay alguna manera de hacerlo? ¿Tal vez no usando la herramienta del tiempo, sino algunos trucos del kernel?
Quería preguntar, antes de comenzar a escribir mi propio programa.
Gracias Piotr
fuente
-ttttt
también puede ser útil: en lugar de mostrar microsegundos desde el último paquete, muestra microsegundos desde el comienzo de la traza.Intenta hacer ping:
Del manual de ping:
fuente
Ejecute su programa y mientras tanto capture el tráfico de red con
tcpdump
owireshark
. Verifique el tiempo de la solicitud y la respuesta y haga una simple resta.fuente