Perché otteniamo un'elevata fluttuazione sul grafico dei cactus per la misurazione della larghezza di banda?


14

Eravamo in test di ridondanza di Etherchannel e Routing sulla nostra rete. Durante questo intervento abbiamo effettuato alcune misurazioni. Il nostro strumento di monitoraggio è Cactus per il grafico. L'apparecchiatura monitorata è un 4500-X su VSS. Ogni collegamento si trova su un telaio fisico diverso.

Schema:

etherchannel 1

Cronologia del test:
[t0] Il collegamento sulla porta te1 / 1/14 è stato rimosso fisicamente. Te2 / 1/14 è attivo. Po1 è operativo.
[t0 + 15] Il collegamento sulla porta Te1 / 1/14 è tornato in servizio e ha verificato che la porta di ritorno nell'etere Po1
[t0 + 20] Il collegamento sulla porta te1 / 1/14 sia stata rimossa fisicamente. Te2 / 1/14 è attivo. Po1 è operativo.
[t0 + 35] Il collegamento sulla porta Te1 / 1/14 è tornato in servizio e ha verificato che la porta sia ritornata nell'etere Po1

Nei nostri test, abbiamo monitorato il canale di traffico Po1 attraverso i cactus (grafico sotto) e abbiamo notato un cambiamento significativo nel valore del flusso quando abbiamo disabilitato il collegamento te1 / 1/14 (collegamento risorse te2 / 1/14) piuttosto stabile durante il contrario . Abbiamo controllato anche i contatori su Int Po1 e questi sono stati mantenuti abbastanza stabili.

Grafico

Due interfacce di 10G sono raggruppate su Etherchannel con LACP configurato. All'interno del canale eterico ci sono 2 valli. Uno per il traffico multicast e un altro per Internet / Tutto il traffico.

Conosci una possibile causa di questo comportamento?


Per quanto tempo hai sostenuto ogni test?
LAF

Ogni disconnessione della porta impiega 15 minuti, come puoi vedere in cronologia.
cgasp,

Qual è la configurazione del canale port e il tipo di bilanciamento del carico su entrambi i lati? Cosa puoi dirci della tua suite di test e dei parametri che hanno generato quel traffico - un flusso, più flussi, protocollo, ecc.
generalnetworkerror

Due interfacce di 10G sono raggruppate su Etherchannel con LACP configurato. All'interno del canale eterico ci sono 2 valli. Uno per il traffico multicast e un altro per Internet / Tutto il traffico. Domanda aggiornata.
cgasp,

Il test era su un test di ridondanza generalista su protocolli di routing e canali eterici. Se un collegamento scende, cosa succede. Tutti i test vengono eseguiti come previsto, ma ci chiediamo perché questo comportamento sulla misurazione del bandwitdh.
cgasp,

Risposte:


11

Per estendere il commento di ytti.

Il tuo intervallo di sondaggio sembra davvero ridotto, ogni 10 secondi se sto leggendo bene. Ci sono alcuni motivi per cui potresti ottenere quel risultato.

Lato attrezzatura:

  • Scelta errata dei contatori, se si utilizzano contatori a 32 bit, potrebbero scorrere ogni ~ 3,4 secondi se si esegue un'interfaccia da 10 g alla frequenza di linea
  • Aggiornamento contatore, molti dispositivi più grandi aggiornano i contatori solo due o tre volte al minuto e non possono mai essere considerati affidabili. Ogni 30 secondi è basso quanto mi preoccuperei del polling e anche allora vorrei sempre almeno due punti prima di attivare qualsiasi avviso o agire
  • Può esserci un gotcha poiché i pacchetti inviati per l'elaborazione della CPU (forse netflow) possono essere contati immediatamente rispetto a quelli che non stanno andando a RE in batch (l'ho visto su Juniper MX)

Lato Poller:

  • Il poller sta eseguendo il polling con precisione all'intervallo e, in caso contrario, sta iniettando il suo risultato con il tempo di polling effettivo (ad es. X bit in yz secondi) in modo da poter calcolare una frequenza ragionevole
  • Cosa succede quando si ripristinano i contatori o quando i GET SNMP non ricevono risposta, strumenti diversi rispondono a questi in modi diversi

1
Anche se esegui il polling in modo molto accurato ogni N, la casella potrebbe non eseguire il polling dei contatori HW a intervalli precisi, facendo sembrare che t1, t2 non aumenti il ​​traffico e t2, t3 vedi oltre il rivestimento. Ora, quali sono i risultati più accurati che puoi ottenere sono forse nel regno di math.stackexchange, ma credo che il meglio che puoi fare sia 2 * the_slowest_update_interval, se la scatola si aggiorna ogni 10s, potresti avere dati di misurazione ogni 20s. Ma probabilmente con un po 'di magia statistica puoi avvicinarti ai 10 (il problema qui è che l'intervallo di aggiornamento non è accuratamente cronometrato)
ytti

1
Inoltre, quale poller si sta utilizzando con i cactus è importante a un intervallo di polling di 10 secondi. Ho avuto brutte esperienze con il poller predefinito a quegli intervalli di polling bassi. Non viene fatta alcuna menzione se utilizzano Spine o il poller predefinito.
Brett Lykins,

6

Il tuo problema è che il campionamento del tuo router e il tuo polling non stanno colpendo nello stesso momento. Cioè, anche se l'intervallo di polling è statico, gli intervalli di polling contengono diverse quantità di campioni, che la tua matematica non tiene in considerazione.
Considera di aver eseguito il polling di t1, t2, t3 ma il router non ha campionato nulla all'intervallo t1, t2, quindi tutto il traffico tra t1, t3 è finito a t2, valore di polling t3. Causando che la tua frequenza sia 0 a t1, t2 e oltre linerato a t2, t3

Ora suggerirò una soluzione, ma per favore verificalo con qualcuno che abbia una comprensione superficiale della matematica.

Prima capire l'interfaccia che ti interessa (se ge-1/1/1):

snmpbulkwalk INTERRUTTORE ifDescr | grep ge-1/1/1

Quindi vedrai il suo numero ifIndex, supponiamo che sia '42'.

Quindi fai qualcosa del tipo:

while true; do
  snmpbulkwalk SWITCH ifHCInOctets.42 >> DATA
  date >> DATA
  sleep 1
done

Ora analizza i risultati per determinare con quale frequenza in media i contatori vengono effettivamente aggiornati. (Posso produrre script per l'analisi se necessario)

Poi arriva la parte in cui avremmo bisogno della matematica, ma suggerirò una soluzione ingenua.

Se l'intervallo di aggiornamento è 10 s, casella di polling ogni 5 s, ovvero due volte più spesso rispetto all'aggiornamento. Quindi i tuoi campioni sarebbero

t0, t5, t10, t15, t20, t25, t30

Ora questi sarebbero i tuoi dati grezzi, che non utilizzeresti, ma preferiresti recuperare campioni reali da questi in questo modo

s1 = (t0+t5+t10)/3
s2 = (t10+t15+t20)/3
s3 = (t20+t25+t30)/3

La logica qui è che vogliamo trapelare oltre i confini per ridurre l'effetto di intervalli di polling imprecisi sul tuo switch.

Quindi tracciare s1, s2, s3 e dovresti avere risultati molto più fluidi / precisi di quello che stai vedendo ora.

Tuttavia, sono sicuro che questo non è un problema nuovo e sono sicuro che esiste una soluzione formale su come recuperare una precisione ottimale, purtroppo producendo quella soluzione non rientra nelle mie competenze. Qualcosa di matematico. Scambiare le persone sarebbe meglio attrezzato per affrontare.


3

Dato che stai eseguendo il polling alla stessa velocità con cui i contatori vengono aggiornati, probabilmente non sei sincronizzato.

Con la configurazione

snmp-server hc poll <<hundredths of a second>>

puoi ridurre l'intervallo in cui i contatori SNMP vengono aggiornati a qualcosa come 1 secondo. Ciò dovrebbe comportare un valore più accurato per la velocità effettiva quando si esegue il polling ogni 10 secondi.

Cordiali saluti, questo è un comando nascosto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.