Inhoud

Inleiding

Voorwaarden

Vereisten

Gebruikte componenten

Conventies

Buffers gemist en falen

Buffer Pools

Opdracht voor configuratie van buffers

Aanvullende showopdrachten

Gerelateerde informatie

Inleiding

In dit document worden bufferfouten en -fouten op de routingprocessor (RP) besproken.

Voorwaarden

Vereisten

Er zijn geen specifieke vereisten van toepassing op dit document.

Gebruikte componenten

Dit document is niet beperkt tot specifieke software- en hardware-versies.

De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u de potentiële impact van elke opdracht begrijpen.

Conventies

Raadpleeg Cisco Technical Tips Conventions (Conventies voor technische tips van Cisco) voor meer informatie over documentconventies.

Buffers gemist en falen

De RP deelt zijn processorgeheugen in pools. Elke poel bevat een aantal geheugenblokken van gelijke grootte. Deze geheugenblokken worden buffers genoemd.

Buffer Pools

Er zijn zes bufferpools:

- Small-104 bytes buffers

- Midden-600 byte-buffers

- Big—1524 byte-buffers

- Zeer groot-4520 bytes buffers

- Grote—5024 bytes buffers

- Enorme buffers van 18024 bytes

Bijvoorbeeld, als een interfaceprocessor een 20 bytepakket aan RP moet doorgeven, "vraagt" het om een kleine buffer. Als een interfaceprocessor een 500 bytepakket aan de RP moet doorgeven, vraagt hij om een middenbuffer, enzovoort.

Opmerking: de interfaceprocessor moet om een buffer van een bepaalde grootte vragen.

Wanneer de interfaceprocessor om een buffer vraagt, gebeurt dit:

- Indien binnen de gevraagde pool een vrije buffer bestaat, wordt de buffer toegekend. Anders genereert het verzoek een "missen" en het bufferalgoritme probeert "meer buffers voor die pool te maken".

- Wanneer IOS geen kleine buffer krijgt, laat het pakket niet vallen. Het verhoogt de mislukte teller en valt door naar de volgende level buffer, die de middenbuffer is en daar om een buffer vraagt. Als er geen middenbuffer is, vraagt hij om de volgende level buffer, die een grote buffer is. Dit proces duurt voort totdat het de grote bufferpool bereikt. Als er geen grote buffer is, laat hij het pakje vallen.

- Wanneer u de IBM optie gebruikt, genereert een fout bijna altijd een storing.

- Hoewel de IBM-functies mogelijk procesgeschakeld zijn, voert de code om een buffer te verkrijgen om een pakket van een interface naar de RP door te geven op interruptieniveau.

- Buffers kunnen niet op interruptieniveau worden gecreëerd; dientengevolge stelt een miste zijn verzoek om meer buffers in de RP in de wachtrij.

- Omdat een extra buffer niet op de plaats kan worden aangemaakt, mislukt het bufferverzoek en wordt het pakje ingetrokken.

Buffer-defecten zijn een van de meest voorkomende redenen voor pakketverlies. Wanneer pakketdalingen optreden vanwege een defect aan de buffer, gebeurt dit:

- Na een bufferstoring heeft de RP een uitstaand verzoek om meer buffers van de juiste grootte voor de specifieke pool te creëren.

- Terwijl de RP aan het verzoek om buffers te voldoen, kan er extra mislukkingen in de pool zijn.

- De RP kan zelfs nalaten om meer buffers te creëren vanwege geheugenbeperkingen in het systeem wanneer de extra buffers nodig zijn.

- In wezen kan de operatie buffers een paar microseconden duren, waarin pakketten voortdurend worden geworpen vanwege het buffertekort.

- Bovendien, als buffers zo snel worden gebruikt als zij worden gemaakt, zou de RP gedwongen kunnen worden om meer tijd aan buffercreatie door te brengen dan aan pakketverwerking.

- Dit kan de RP ertoe aanzetten om pakketten zo snel te laten vallen dat prestaties afnemen en sessies verloren gaan.

Gelukkig zijn, zoals in dit document wordt besproken, de problemen van buffermislukkingen niet moeilijk te identificeren en op te lossen. Deze opdrachtoutput van buffers toont de huidige status van de bufferpoelen van de router:

dspu-7k#show buffers

Buffer elements:

500 in free list (500 max allowed)

2370 hits, 0 misses, 0 created

Public buffer pools:

Small buffers, 104 bytes (total 16, permanent 10):

11 in free list (0 min, 10 max allowed)

1770 hits, 33 misses, 22 trims, 28 created

9 failures (0 no memory)

Middle buffers, 600 bytes (total 90, permanent 90):

89 in free list (10 min, 200 max allowed)

590 hits, 0 misses, 0 trims, 0 created

0 failures (0 no memory)

Big buffers, 1524 bytes (total 90, permanent 90):

90 in free list (5 min, 300 max allowed)

126 hits, 0 misses, 0 trims, 0 created

0 failures (0 no memory)

VeryBig buffers, 4520 bytes (total 10, permanent 10):

10 in free list (0 min, 300 max allowed)

50 hits, 0 misses, 0 trims, 0 created

0 failures (0 no memory)

Large buffers, 5024 bytes (total 10, permanent 10):

10 in free list (0 min, 30 max allowed)

0 hits, 0 misses, 0 trims, 0 created

0 failures (0 no memory)

Huge buffers, 18024 bytes (total 2, permanent 0):

0 in free list (0 min, 13 max allowed)

2 hits, 2 misses, 0 trims, 2 created

0 failures (0 no memory)

In de uitvoer van showbuffers:

- Totaal identificeert het totale aantal buffers in de pool, waaronder gebruikte en ongebruikte buffers.

- Permanent identificeert het permanente aantal toegewezen buffers in de pool. Deze buffers zitten altijd in het zwembad en kunnen niet worden opgeruimd.

- In de gratis lijst wordt het aantal buffers in de pool aangegeven dat beschikbaar is voor gebruik.

- Min identificeert het minimumaantal buffers dat de RP in de vrije lijst moet proberen te houden:

- De min-parameter wordt gebruikt om te anticiperen op de vraag naar buffers uit de pool op een bepaald moment.

- Als het aantal buffers in de vrije lijst onder de min waarde daalt, probeert de RP meer buffers voor die pool te creëren.

- Max-toegestaan identificeert het maximale aantal buffers dat in de gratis lijst is toegestaan:

- De max-toegelaten parameter voorkomt dat een pool buffers monopoliseert die hij niet meer nodig heeft. Het bevrijdt dit geheugen ook terug naar het systeem voor verder gebruik.

- Als het aantal buffers in de vrije lijst groter is dan de maximaal toegestane waarde, moet de RP proberen om buffers uit de pool te snijden.

- Hits identificeert het aantal buffers dat van de pool is gevraagd. De slagteller biedt een mechanisme om te bepalen welke pool aan de hoogste vraag naar buffers moet voldoen.

- Misses identificeert het aantal keren dat een buffer is gevraagd en de RP werd gedetecteerd in welke pool extra buffers nodig waren. Met andere woorden: het aantal buffers in de gratis lijst is onder min. De ontbrekende teller vertegenwoordigt het aantal keren dat de RP gedwongen is om extra buffers te creëren.

- Trims identificeert het aantal buffers dat de RP uit de poel heeft opgerekt, wanneer het aantal buffers in de vrije lijst het aantal maximaal toegestane buffers overschreed.

- Gemaakt identificeert het aantal buffers dat in de pool is gecreëerd. In deze situaties creëert de RP buffers:

- Wanneer de vraag naar buffers is toegenomen tot het aantal buffers in de vrije lijst minder is dan de min buffers.

- Een misser gebeurt omdat er geen buffers zijn in de vrije lijst.

- Beide situaties deden zich voor.

- Fouten identificeren zich wanneer IOS geen Small buffer krijgt, laat het pakket niet vallen. Het verhoogt de mislukte teller en valt door naar de volgende level buffer, die de middenbuffer is en daar om een buffer vraagt. Als er geen middelste buffer is, vraagt hij om de volgende level buffer, een grote buffer. Dit proces duurt voort totdat het de grote bufferpool bereikt. Als er geen grote buffer is, laat hij het pakje vallen.

- Geen geheugen identificeert het aantal fouten veroorzaakt door onvoldoende geheugen om extra buffers te creëren.

U kunt de kenmerken van elke pool onderzoeken om te bepalen welke pools (als er al zijn) problemen tegenkomen. De parameters voor een pool kunnen worden aangepast om de router beter voorbereid te zijn om de lading aan te kunnen, als de pool deze kenmerken lijkt te vertonen:

- Het aantal missen en creëert een hoge increment (als percentage hits).

- Er staat een consequent laag aantal buffers in de vrije lijst.

- Het aantal defecten of geen toename van het geheugen.

Opdracht voor configuratie van buffers

Met de configuratieopdracht buffers kunt u deze parameters instellen voor elke bufferpool:

- eerste —tijdelijke buffers die bij systeemherlading worden toegewezen.

- Max-vrij-maximum aantal vrije buffers.

- min-vrij - Minimumaantal vrije buffers.

- permanent - Aantal permanente buffers.

Initiële buffers

Stel de buffers van de hoeven in om de barst van het verkeer van de sessie na routerherlading te ontvangen.

buffers small initial 250

Deze buffers worden uiteindelijk ‘geremd' en teruggekeerd naar het systeem.

De eerste buffers zijn ontworpen om sessiebedrijf aan te kunnen, dat altijd procesgeschakeld is.

Tijdens het opzetten van een sessie is het fastswitching cache (gebruikt door andere routeprotocollen) ingevuld; procesgeschakelde buffers zijn niet langer nodig en kunnen naar het systeem worden teruggestuurd.

Voor het instellen van de eerste buffers is de juiste oplossing voor de IBM-optie misschien niet ingeschakeld, omdat vrijwel alle pakketten (na het instellen van de sessie) zijn verwerkt en toch de extra buffering nodig is.

Opmerking: Voor de IBM procesgeschakelde functies moet u permanente buffers instellen in plaats van de tijdelijke eerste buffers.

Max. belastingvrije buffers

Tune max-vrije buffers zodat de waarde gelijk is aan of groter is dan de permanente buffers. Als alle permanente buffers in de vrije lijst staan, moet de RP niet proberen om permanente buffers te trim. Max-vrij kan worden gebruikt om er zeker van te zijn dat ongebruikte buffers die worden gecreëerd tijdens onregelmatige bursten, terug worden gegeven in het systeemgeheugen.

buffers small max-free 175

buffers small permanent 125

Min.-vrije buffers

Kietvrije buffers zodat de waarde het geschatte minimumaantal buffers vertegenwoordigt dat op elk moment vereist is. Min-vrij kan worden gebruikt om te anticiperen op de bufferschaarste en om ervoor te zorgen dat er altijd een minimumaantal buffers beschikbaar is.

buffers small min-free 50

Permanent Buffers

Tune permanente buffers zodat de waarde het geschatte aantal buffers vertegenwoordigt dat nodig is voor een normale verwerking.

buffers small permanent 125

Permanente buffers worden gebruikt om te voldoen aan de normale buffervereisten (inclusief frequente brandwonden) van de router. De bepaling van de normale buffervereisten is een interactief proces, waarbij de output van de bufferbuffer op een bepaald tijdstip de totale buffers in een pool moet tonen. Permanente buffers dienen te worden afgestemd op de vereiste consistente "totale" buffers. Als je permanente buffers afstemt, moet je focussen op de reductie van creaties en de eliminatie van fouten en mislukkingen.

Aanvullende showopdrachten

Er zijn twee andere show opdrachten die u kunt gebruiken om problemen met de buffertoewijzing te identificeren:

- Laat interface-ID van interfaces zien

- brug van de bron tonen

Dit toont interface interface-identifier steekproefuitvoer een teller voor geen buffer:

dspu-7k#show interfaces channel 4/2

Channel4/2 is up, line protocol is up

Hardware is cxBus IBM Channel

MTU 4472 bytes, BW 98304 Kbit, DLY 100 usec, rely 255/255, load 1/255

Encapsulation CHANNEL, loopback not set, keepalive not set

Virtual interface

Last input 0:00:04, output 0:00:04, output hang never

Last clearing of "show interface" counters never

Output queue 0/40, 0 drops; input queue 0/75, 8 drops

5 minute input rate 0 bits/sec, 0 packets/sec

5 minute output rate 0 bits/sec, 0 packets/sec

646 packets input, 27760 bytes, 8 no buffer

Received 0 broadcasts, 0 runts, 0 giants

0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort

328 packets output, 16959 bytes, 0 underruns

0 output errors, 0 collisions, 0 interface resets, 0 restarts

0 output buffer failures, 0 output buffers swapped out

In de opdrachtoutput van de show interfaces interface-identifier:

- De bufferteller stappen wanneer de interface geen buffer voor een inkomende pakket verkrijgt.

- Zowel de geen buffer als de (ingangswachtrij) tellen de toename wanneer de interface geen buffer voor een inkomende pakketreis verkrijgt.

- Een geen bufferteller die de stappen in de uitvoer van de tonen interfaces correleert met de missen teller die stappen in de show buffers uitvoer. Het geschikte bufferdepot kan worden afgestemd.

Deze voorbeeldopdracht voor bron-bridge bevat een interfaceteller voor trotkels wanneer Source-Route Bridging (SRB) is geconfigureerd voor de interface:

dspu-7k#show source-bridge

Local Interfaces:                        receive            transmit

srn bn  trn r p s n  max hops     cnt:bytes          cnt:bytes      drops

Ch4/2  666  1   99 *   f    7  7  7      652:26020            6:266           0

Global RSRB Parameters:

TCP Queue Length maximum: 100

Ring Group 99:

This TCP peer: 150.10.20.2

Maximum output TCP queue length, per peer: 100

Peers:                 state     bg lv  pkts_rx  pkts_tx  expl_gn   drops TCP

TCP 150.10.20.1       open         *3      261      266        0       0   0

TCP 150.10.20.2       -            *3        0        0        0       0   0

Rings:

bn: 1  rn: 888  locvrt ma: 4000.7000.fff1 Buff Ring888          fwd: 0

bn: 1  RN: 666  local  ma: 4000.0c48.2e80 Channel4/2            fwd: 261

bn: 1  RN: 88   remote ma: 4000.4000.fff1 TCP 150.10.20.1       fwd: 322

bn: 1  RN: 250  remote ma: 4000.300f.7c09 TCP 150.10.20.1       fwd: 0

Explorers: ------- input -------             ------- output -------

spanning  all-rings     total      spanning  all-rings     total

Ch4/2           0          0         0             0          1         1

Local: fastswitched 0         flushed 0         max Bps 256000

rings      inputs         bursts         throttles output drops

Ch4/2           0              0                 8            0

In de opdrachtoutput van show source-bridge:

- De stappen van de telteller wanneer de interface geen buffer voor een inkomende pakket verkrijgt.

- De tellers die die stappen in de opdrachtoutput van de show interfaces correleert met een misses teller die stappen in de opdracht buffers tonen. Het geschikte bufferdepot kan worden afgestemd.

Gerelateerde informatie

- Buffer-tuning voor alle Cisco-routers

- Technische ondersteuning en documentatie – Cisco Systems