Gostaria de medir a latência da rede para solicitação SNMP GET. Existe uma ferramenta de linha de comando gratuita time
que pode ser usada para encontrar estatísticas de tempo para vários comandos. Por exemplo, ele pode ser usado snmpget
da seguinte maneira:
$ 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
De acordo com o manual, as estatísticas consistem em:
o tempo real decorrido entre a invocação e a rescisão,
o tempo de CPU do usuário (a soma dos
valores tms_utime e tms_cutime em uma estrutura tms, conforme retornado por
times (2)),o tempo de CPU do sistema (a soma dos valores de
tms_stime e tms_cstime em uma estrutura tms, conforme retornado por
vezes (2)).
Como você vê, nenhuma dessas opções permite medir o tempo real de latência da rede (com outras estatísticas de tempo de execução do programa excluídas). Existe alguma maneira de fazer isso? Talvez não usando a ferramenta de tempo, mas alguns hackers do kernel?
Eu queria perguntar, antes de começar a escrever meu próprio programa.
Obrigado, Piotr
fonte
-ttttt
também pode ser útil - em vez de mostrar microssegundos desde o último pacote, mostra microssegundos desde o início do rastreamento.Experimente o ping:
No manual do ping:
fonte
Execute seu programa e, enquanto isso, capture o tráfego de rede com
tcpdump
ouwireshark
. Verifique a hora da solicitação e a resposta e faça uma subtração simples.fonte