Sommario

Introduzione

Prerequisiti

Requisiti

Componenti usati

Premesse

Informazioni sulle funzionalità

Metodologia di risoluzione dei problemi

Problemi comuni

Domande frequenti

Informazioni correlate

Introduzione

Questo documento descrive come risolvere i problemi di perdite di output dovute a QoS (Quality of Service) sugli switch Cisco Catalyst serie 2960, 3750, 3750G, 3750X e 3560.

Prerequisiti

Requisiti

Cisco raccomanda la conoscenza base di QoS.

Componenti usati

Le informazioni fornite in questo documento si basano sulle seguenti piattaforme: Switch Cisco Catalyst serie 2960, 3750, 3750G, 3750X, 3560.

Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.

Premesse

QoS viene utilizzato per assegnare la priorità ai dati più importanti durante i periodi di congestione. Di conseguenza, dopo l'abilitazione di QoS, è possibile che si verifichino cali nei dati di massa meno importanti.

Gli switch Cisco Access Layer implementano le funzionalità QoS nell'hardware. Questo documento aiuta a stabilire se le perdite sono causate da QoS e descrive varie opzioni di coda e ottimizzazione del buffer per mitigarle.

Informazioni sulle funzionalità

Coda predefinita in ingresso

Coda predefinita in uscita

Metodologia di risoluzione dei problemi

1. Identificare le interfacce che trasportano i dati in uscita per l'applicazione interessata o che sperimentano perdite di output di tale incremento. Confrontare la velocità di output dell'interfaccia e la velocità dell'interfaccia e assicurarsi che le cadute non siano dovute a un sovrautilizzo del collegamento.
Switch#show int gi1/0/1

!-- Some output omitted.

GigabitEthernet0/1 is up, line protocol is up (connected)

MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec,

Full-duplex, 1000Mb/s, media type is 10/100/1000BaseTX

input flow-control is off, output flow-control is unsupported

Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 1089

Queueing strategy: fifo

Output queue: 0/40 (size/max)

5 minute input rate 4000 bits/sec, 6 packets/sec

5 minute output rate 3009880 bits/sec, 963 packets/sec

2. Verificare che QoS sia abilitato sullo switch. Se non è abilitata, le interruzioni dell'output non sono correlate al QoS e pertanto le ulteriori operazioni qui menzionate sono irrilevanti.
Switch#show mls qos

QoS is enabled

QoS ip packet dscp rewrite is enabled

3. Identificare il contrassegno del traffico in uscita scartato sull'interfaccia.
Switch#show mls qos int gi1/0/1 statistics

GigabitEthernet1/0/1 (All statistics are in packets)

dscp: incoming

-------------------------------

0 -  4 :       0       0       0       0       0

5 -  9 :       0       0       0       0       0

10 - 14 :      0       0       0       0       0

15 - 19 :      0       0       0       0       0

20 - 24 :      0       0       0       0       0

25 - 29 :      0       0       0       0       0

30 - 34 :      0       0       0       0       0

35 - 39 :      0       0       0       0       0

40 - 44 :      0       0       0       0       0

45 - 49 :      0  198910       0       0       0

50 - 54 :      0       0       0       0       0

55 - 59 :      0       0       0       0       0

60 - 64 :      0       0       0       0

dscp: outgoing

-------------------------------

0 -  4 :       0       0       0       0       0

5 -  9 :       0       0       0       0       0

10 - 14 :      0       0       0       0       0

15 - 19 :      0       0       0       0       0

20 - 24 :      0       0       0       0       0

25 - 29 :      0       0       0       0       0

30 - 34 :      0       0       0       0       0

35 - 39 :      0       0       0       0       0

40 - 44 :      0       0       0       0       0

45 - 49 :      0  248484       0       0       0

50 - 54 :      0       0       0       0       0

55 - 59 :      0       0       0       0       0

60 - 64 :      0       0       0       0

cos: incoming

-------------------------------

0 -  4 :      2       0       0       0       0

5 -  7 :      0       0       0

cos: outgoing

-------------------------------

0 -  4 :      0       0       0       0       0

5 -  7 :      0       0       0

output queues enqueued:

queue:    threshold1   threshold2   threshold3

-----------------------------------------------

queue 0:      248484 0      0

queue 1:      0      0      0

queue 2:      0      0      0

queue 3:      0      0      0

output queues dropped:

queue:    threshold1   threshold2   threshold3

-----------------------------------------------

queue 0:   1089      0      0

queue 1:      0      0      0

queue 2:      0      0      0

queue 3:      0      0      0

Policer: Inprofile:     0 OutofProfile:     0

Nota: In questo esempio vengono mostrati i pacchetti ignorati nella coda 0/soglia1 che ignorano i pacchetti. In altri esempi nel documento, la numerazione delle code è 1 - 4; pertanto, questo valore sarà la coda 1.

4. Controllare la mappa da contrassegno a output-q sullo switch per determinare quale coppia coda-soglia corrisponde al contrassegno che viene scartato. In questo scenario, queue1/threshold1 viene mappato su dscp 46, che viene eliminato sull'interfaccia. Ciò significa che il traffico dscp 46 viene inviato alla coda 1 e viene scartato perché la coda non dispone di buffer sufficiente o ha cicli di CPU inferiori.
Switch#show mls qos maps dscp-output-q

Dscp-outputq-threshold map:

d1 :d2    0     1     2     3     4     5     6     7     8     9

------------------------------------------------------------

0 :    02-01 02-01 02-01 02-01 02-01 02-01 02-01 02-01 02-01 02-01

1 :    02-01 02-01 02-01 02-01 02-01 02-01 03-01 03-01 03-01 03-01

2 :    03-01 03-01 03-01 03-01 03-01 03-01 03-01 03-01 03-01 03-01

3 :    03-01 03-01 04-01 04-01 04-01 04-01 04-01 04-01 04-01 04-01

4 :    01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 04-01 04-01

5 :    04-01 04-01 04-01 04-01 04-01 04-01 04-01 04-01 04-01 04-01

6 :    04-01 04-01 04-01 04-01

5. Ci sono due metodi per risolvere queste gocce. Il primo metodo consiste nel modificare i valori di buffer e di soglia per la coda che scarta i pacchetti. Il secondo metodo consiste nel configurare l'utilità di pianificazione in modo che la coda che scarta i pacchetti venga servita più spesso delle altre code.

In questa procedura viene illustrato come modificare il buffer e la soglia per le code interessate e vengono controllati i valori di buffer e di soglia associati alla coda identificata nel passaggio 4.
Nota: Ogni set di code dispone dell'opzione per configurare le dimensioni del buffer e il valore di soglia per le quattro code in uscita. Quindi, è possibile applicare uno qualsiasi dei set di code a una qualsiasi delle porte. Per impostazione predefinita, tutte le interfacce utilizzano il set di code 1 per le code di output, a meno che non siano configurate in modo esplicito per utilizzare il set di code 2.

In questo scenario, la coda 1 nel set di code 1 ha il 25% dello spazio totale del buffer e la soglia 1 è impostata su 100%

Switch#show mls qos queue-set

Queueset: 1

Queue     :       1       2       3       4

----------------------------------------------

buffers   :      25      25      25      25

threshold1:     100     200     100     100

threshold2:     100     200     100     100

reserved  :      50      50      50      50

maximum   :     400     400     400     400

Queueset: 2

Queue     :       1       2       3       4

----------------------------------------------

buffers   :      25      25      25      25

threshold1:     100     200     100     100

threshold2:     100     200     100     100

reserved  :      50      50      50      50

maximum   :     400     400     400     400

6. Se si desidera modificare i valori di buffer e di soglia solo per l'interfaccia interessata, modificare il set di code 2 e configurare l'interfaccia interessata in modo che utilizzi il set di code 2.
Nota: È possibile modificare anche il set di code 1; tuttavia, poiché per impostazione predefinita tutte le interfacce utilizzano il set di code 1, la modifica viene applicata a tutte le interfacce.

In questo esempio, il set di code 2 viene modificato in modo che la coda 1 riceva il 70% del buffer totale.

Switch(config)#mls qos queue-set output 2 buffers 70 10 10 10

In questo esempio vengono modificate le soglie del set di code 2 e della coda 1. Sia la soglia 1 che la soglia 2 vengono mappate a 3100 in modo che possano estrarre il buffer dal pool riservato, se necessario.

Switch(config)#mls qos queue-set output 2 threshold 1 3100 3100 100 3200

7. Verificare che le modifiche si riflettano nella coda e nel set di code corretti.
Switch#show mls qos queue-set

Queueset: 1

Queue     :       1       2       3       4

----------------------------------------------

buffers   :      25      25      25      25

threshold1:     100     200     100     100

threshold2:     100     200     100     100

reserved  :      50      50      50      50

maximum   :     400     400     400     400

Queueset: 2

Queue     :       1       2       3       4

----------------------------------------------

buffers   :      70      10      10      10

threshold1:    3100     100     100     100

threshold2:    3100     100     100     100

reserved  :     100      50      50      50

maximum   :    3200     400     400     400

8. Impostare l'interfaccia interessata in modo che utilizzi il set di code 2 in modo che le modifiche abbiano effetto sull'interfaccia.
Switch(config)#int gi1/0/1

Switch(config-if)#queue-set 2

Switch(config-if)#end

Verificare che l'interfaccia sia mappata al set di code 2.

Switch#show run int gi1/0/1

interface GigabitEthernet1/0/1

switchport mode access

mls qos trust dscp

queue-set 2

end

Verificare se l'interfaccia continua a rilasciare i pacchetti.

9. È inoltre possibile configurare l'utilità di pianificazione in modo da aumentare la velocità di elaborazione della coda 1 con le opzioni di condivisione e forma. In questo esempio, la sola coda 1 riceve il 50% del totale dei cicli della CPU e le altre tre code ricevono collettivamente il 50% dei cicli della CPU.
Switch(config-if)#srr-queue bandwidth share 1 75 25 5

Switch(config-if)#srr-queue bandwidth shape 2  0  0  0

Verificare se l'interfaccia continua a rilasciare i pacchetti.

10. Abilita la coda di priorità su questa interfaccia. Questa azione assicura che tutto il traffico nella coda di priorità venga elaborato prima di qualsiasi altra coda.
Nota: La coda di priorità viene servita fino a quando non è vuota prima che vengano servite le altre code. Per impostazione predefinita, sugli switch serie 2960/3560/3750, la coda 1 è la coda di priorità.

Switch(config)#int gi1/0/1

Switch(config-if)#priority-queue out

Switch(config-if)#end

È possibile mappare il contrassegno del pacchetto scartato sull'interfaccia in modo che vada alla coda 1 (coda di priorità). Questa azione assicura che il traffico con questo contrassegno venga sempre elaborato prima di ogni altra operazione.

Switch(config)#mls qos srr-queue output dscp-map queue 1 threshold 1

Problemi comuni

Di seguito sono riportati alcuni problemi comuni:

- L'output viene interrotto sulle interfacce dopo l'abilitazione di QoS.

- Chiamate discontinue.

- L'aggiunta del ritardo causa traffico video non ottimale.

- La connessione viene reimpostata.

Domande frequenti

D: Quando modificare il set di code e quando utilizzare la condivisione e il shaping?

A: La decisione dipende dalla natura delle gocce. Se le cadute aumentano in modo intermittente, questo problema è probabilmente dovuto a traffico bursty. Al contrario, se le perdite aumentano continuamente a una velocità costante, la coda che scarta i pacchetti probabilmente riceve più dati di quanti possa inviare.

Per le cadute intermittenti, la coda deve disporre di un buffer di grandi dimensioni in grado di contenere burst occasionali. Per implementare questa soluzione, è necessario modificare il set di code e allocare più buffer alla coda interessata, nonché aumentare i valori di soglia.

Per i rilasci continui, è necessario configurare lo scheduler in modo che serva la coda interessata più spesso e che estragga dalla coda più pacchetti per ciclo di CPU.  Per implementare questa soluzione, è necessario configurare la condivisione o il shaping sulle code in uscita.

D: Qual è la differenza tra modalità condivisa e modalità forma?

A: Nella modalità con forma, alle code in uscita viene garantita una percentuale della larghezza di banda e la loro velocità è limitata a tale quantità. Il traffico con forma non utilizza più della larghezza di banda allocata anche se il collegamento è inattivo. La modalità Shaped offre un flusso del traffico più uniforme nel tempo e riduce i picchi e le valli del traffico bursty. Con il shaping, il valore assoluto di ciascun peso viene utilizzato per calcolare la larghezza di banda disponibile per le code.

forma larghezza di banda coda srr peso1 peso2 peso3 peso4

Il rapporto inverso (1/peso) controlla la larghezza di banda di shaping per questa coda. In altre parole, queue1 è riservato 1/weight1 percento della larghezza di banda totale e così via. Se si configura un peso pari a 0, la coda corrispondente funziona in modalità condivisa. Il peso specificato con il comando srr-queue bandwidth shape viene ignorato e i pesi specificati con il comando di configurazione srr-queue bandwidth share interface per una coda vengono applicati.

In modalità condivisa, le code condividono la larghezza di banda tra di esse in base ai pesi configurati. La larghezza di banda è garantita a questo livello ma non limitata. Se ad esempio una coda è vuota e non richiede più una condivisione del collegamento, le code rimanenti possono espandersi nella larghezza di banda inutilizzata e condividerla tra di esse.

condivisione larghezza di banda della coda srr peso1 peso2 peso3 peso4

queue1 è garantito un minimo di weight1/(weight1 + weight2 + weight3 + weight4) percentuale della larghezza di banda, ma può anche occupare la larghezza di banda di altre code senza forma, se necessario.

Informazioni correlate

- Documentazione e supporto tecnico – Cisco Systems