Diferenças SNMP nos valores ifInOctets vs ifHCInOctets

4

Estou tentando representar graficamente o uso da rede no meu roteador para uma interface específica usando dados do SNMP. Eu sei que ifInOctets / ifOutOctets é de apenas 32 bits e vai estourar para altas velocidades e fazer meus gráficos parecerem estúpidos, mas parece que as diferenças nos valores retornados por ifInOctets / ifOutOctets e ifHCInOctets / ifHCOutOctets nem sempre são idênticas. Eu testei algumas vezes usando snmpwalk | grep InOctets e subtraindo os valores. Às vezes, vejo que a alteração no contador de 32 bits é significativamente menor (mais de 50%) do que a alteração na versão de 64 bits e, às vezes, vejo o contrário com o contador de 64 bits mostrando um delta menor .

Estou faltando alguma coisa no modo como os contadores de 64 bits devem ser lidos ou há apenas uma diferença na maneira como seus dados são atualizados? Os números de 32 bits correspondem ao que está em / proc / net / dev, por isso estou inclinado a acreditar neles mais, mas o problema de empacotamento os torna inutilizáveis quando a velocidade fica muito alta:

Aqui estão alguns exemplos, cada snmpwalk foi executado com cerca de 10 segundos de intervalo:

$ snmpwalk  -c public -v2c 192.168.1.1 | grep -i InOctets.2
IF-MIB::ifInOctets.2 = Counter32: 2291487255
IF-MIB::ifHCInOctets.2 = Counter64: 2901400127083

$ snmpwalk  -c public -v2c 192.168.1.1 | grep -i InOctets.2
IF-MIB::ifInOctets.2 = Counter32: 2297202283
IF-MIB::ifHCInOctets.2 = Counter64: 2901400298056

Alteração de 32 bits: 5715028

Alteração de 64 bits: 170973

$ snmpwalk  -c public -v2c 192.168.1.1 | grep -i InOctets.2
IF-MIB::ifInOctets.2 = Counter32: 2297528566
IF-MIB::ifHCInOctets.2 = Counter64: 2901400453366

Alteração de 32 bits: 326283

Alteração de 64 bits: 155310

    
por pettazz 20.10.2016 / 23:16

0 respostas