Inhoud

Inleiding

Voorwaarden

Vereisten

Gebruikte componenten

ASR-overzicht van geheugen

Geheugenverdeling onder de lsmpi_io-pool

Geheugengebruik

Controleer het geheugengebruik op IOS-XE

Controleer het geheugengebruik op IOS

Controleer het TCAM-gebruik op een ASR1K

Controleer het geheugengebruik op QFP

Inleiding

Dit document beschrijft hoe u systeemgeheugen en geheugengerelateerde problemen met betrekking tot probleemoplossing kunt controleren op de Cisco ASR 1000 Series aggregation services routers (ASR1K).

Voorwaarden

Vereisten

Cisco raadt u aan basiskennis van deze onderwerpen te hebben:

- Cisco IOS XE-software

- ASR CLI

Opmerking: U hebt mogelijk een speciale licentie nodig om in te loggen op de Linux-shell op de ASR 1001 Series router.

Gebruikte componenten

De informatie in dit document is gebaseerd op de volgende software- en hardware-versies:

- Alle ASR1K-platforms

- Alle Cisco IOS-XE softwarereleases die het ASR1K-platform ondersteunen

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.

ASR-overzicht van geheugen

Met de meeste op software gebaseerde routerplatforms wordt het grootste deel van de interne softwareprocessen uitgevoerd binnen het Cisco IOS® geheugen. Het ASR1K-platform introduceert een gedistribueerde softwarearchitectuur die veel besturingssysteemverantwoordelijkheden uit het IOS-proces verplaatst. De IOS in deze architectuur, die voorheen verantwoordelijk was voor vrijwel alle interne bewerkingen, wordt nu uitgevoerd als een van de vele Linux-processen. Dit laat andere Linux processen toe om verantwoordelijkheid voor de werking van de router te delen.

ASR1K runt IOS-XE, niet de traditionele IOS. In IOS-XE draait een Linux-component de kern en draait de IOS als een daemon, die hierna IOS-D (IOS-Daemon) wordt genoemd. Dit creëert een vereiste dat het geheugen gesplitst wordt tussen de Linux-kern en de IOSd-instantie.

Het geheugen dat tussen IOSd en de rest van het systeem wordt verdeeld is vast bij opstarten en kan niet worden aangepast. Voor een systeem van 4 GB, wordt IOSd toegewezen aan ongeveer 2 GB, en voor een systeem van 8 GB, wordt IOSd toegewezen aan ongeveer 4 GB (met gehandicapte softwareredundantie).

Aangezien ASR1K een 64-bits architectuur heeft, verbruikt elke muiswijzer in elke gegevensstructuur in het systeem het dubbele van de hoeveelheid geheugen in vergelijking met de traditionele single-CPU-platforms (8 bytes in plaats van 4 bytes). De 64-bits adressering stelt IOS in staat om de 2-GB adresseerbare geheugenbeperking van IOS te overwinnen, wat het in staat stelt om tot miljoenen routes te schaalen.

Opmerking: Zorg ervoor dat u over voldoende geheugen beschikt voordat u nieuwe functies activeert. Cisco raadt u aan ten minste 8 GB DRAM te hebben als u de gehele BGP-routingtabel (Border Gateway Protocol) ontvangt wanneer software redundantie is ingeschakeld om uitputting van het geheugen te voorkomen.

Geheugenverdeling onder de lsmpi_io-pool

De Linux Shared Memory Point Interface (LSMPI)-geheugenpool wordt gebruikt om pakketten van de verzendende processor naar de routeprocessor over te brengen. Dit geheugen poel wordt gekerfd bij routerinitialisatie in vooraf toegewezen buffers, in tegenstelling tot de processor pool, waar IOS-XE geheugen blokken dynamisch toewijst. Op het ASR1K-platform heeft de lsmpi_io-pool weinig vrije geheugen,  over het algemeen minder dan 1000 bytes  normaal . Cisco raadt u aan om controle van de LSMPI-pool door de netwerkbeheertoepassingen uit te schakelen om valse waarschuwingen te voorkomen.

ASR1000# show memory statistics

Head      Total(b)    Used(b)    Free(b)     Lowest(b)   Largest(b)

Processor  2C073008  1820510884  173985240  1646525644  1614827804  1646234064

lsmpi_io   996481D0  6295088     6294120    968         968         968

Als er problemen zijn in het LSMPI-pad, lijkt de Apparaatuitzending defect teller te zijn toegenomen in deze opdrachtoutput (sommige uitvoer is weggelaten):

ASR1000-1# show platform software infrastructure lsmpi driver

LSMPI Driver stat ver: 3

Packets:

In: 674572

Out: 259861

Rings:

RX: 2047 free    0    in-use    2048 total

TX: 2047 free    0    in-use    2048 total

RXDONE: 2047 free    0    in-use    2048 total

TXDONE: 2047 free    0    in-use    2048 total

Buffers:

RX: 7721 free    473  in-use    8194 total

Reason for RX drops (sticky):

Ring full        : 0

Ring put failed  : 0

No free buffer   : 0

Receive failed   : 0

Packet too large : 0

Other inst buf   : 0

Consecutive SOPs : 0

No SOP or EOP    : 0

EOP but no SOP   : 0

Particle overrun : 0

Bad particle ins : 0

Bad buf cond     : 0

DS rd req failed : 0

HT rd req failed : 0

Reason for TX drops (sticky):

Bad packet len   : 0

Bad buf len      : 0

Bad ifindex      : 0

No device        : 0

No skbuff        : 0

Device xmit fail : 0

Device xmit rtry : 0

Tx Done ringfull : 0

Bad u->k xlation : 0

No extra skbuff  : 0

<snip>

Geheugengebruik

ASR1K bestaat uit deze functionele elementen in haar systeem:

- ASR 1000 Series routeprocessor (RP)

- ASR 1000 Series geïntegreerde servicesprocessor (ESP)

- ASR 1000 Series SPA-interfaceprocessor (SIP)

Als zodanig is het noodzakelijk het geheugengebruik door elk van deze processors in een productieomgeving te controleren.

De controleprocessors runnen Cisco IOS-XE software die uit een Linux-gebaseerde kern en een gemeenschappelijke reeks OS-niveau nutsprogramma's bestaat, die Cisco IOS omvatten die als een gebruikersproces op de RP-kaart loopt.

Controleer het geheugengebruik op IOS-XE

Voer de opdracht voor de besturing van de platformsoftware in om het geheugen te controleren op RP, ESP, en SIP. De systeemstatus moet identiek zijn wat betreft aspecten zoals de functieknop en het verkeer, terwijl u het geheugengebruik vergelijkt.

ASR1K# show platform software status control-processor brief

<snip>

Memory (kB)

Slot  Status   Total    Used (Pct)     Free (Pct)     Committed (Pct)

RP0   Healthy  3907744  1835628 (47%)  2072116 (53%)  2614788 (67%)

ESP0  Healthy  2042668  789764 (39%)   1252904 (61%)  3108376 (152%)

SIP0  Healthy  482544   341004 (71%)   141540 (29%)   367956 (76%)

SIP1  Healthy  482544   315484 (65%)   167060 (35%)   312216 (65%)

Opmerking: Gezegd geheugen is een schatting van hoeveel RAM u nodig hebt om te verzekeren dat het systeem nooit uit het geheugen (Opto) is voor deze werklast. Normaal gesproken wordt het geheugen overschreden. Als je bijvoorbeeld een 1 GB malloc runt, gebeurt er niets echt. U ontvangt alleen echte geheugen-on-demand wanneer u dat toegewezen geheugen begint te gebruiken, en slechts evenveel als u gebruikt.

Elke processor die in de vorige uitvoer staat, kan de status rapporteren als Gezonde, Waarschuwing of Kritisch, wat afhankelijk is van de hoeveelheid vrij geheugen. Als een van de processors de status als WAARSCHUWING of Kritisch weergeven, voert u het monitorplatform softwareproces<sleuf>-opdracht in om de bovenste contribuant te identificeren.

ASR1K# monitor platform software process ?

0   SPA-Inter-Processor slot 0

1   SPA-Inter-Processor slot 1

F0  Embedded-Service-Processor slot 0

F1  Embedded-Service-Processor slot 1

FP  Embedded-Service-Processor

R0  Route-Processor slot 0

R1  Route-Processor slot 1

RP  Route-Processor

<cr>

Mogelijk wordt u gevraagd het terminaltype in te stellen voordat u de opdracht voor de uitvoering van de software van het monitorplatform kunt uitvoeren:

ASR1K# monitor platform software process r0

Terminal type 'network' unsupported for command

Change the terminal type with the 'terminal terminal-type' command.

Het terminaltype wordt standaard ingesteld op een netwerk. Als u het juiste terminaltype wilt instellen, voert u de opdracht terminaltype in:

ASR1K#terminal-type vt100

Als het juiste terminaltype is ingesteld, kunt u de opdracht voor het proces van de platformsoftware van de monitor invoeren (een uitvoer weggelaten):

ASR1000# monitor platform software process r0

top - 00:34:59 up  5:02,  0 users,  load average: 2.43, 1.52, 0.73

Tasks: 136 total,   4 running, 132 sleeping,   0 stopped,   0 zombie

Cpu(s):  0.8%us,  2.3%sy,  0.0%ni, 96.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

Mem:   2009852k total,  1811024k used,   198828k free,   135976k buffers

Swap:        0k total,        0k used,        0k free,  1133544k cached

PID   USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

25956 root      20   0  928m 441m 152m R  1.2 22.5   4:21.32 linux_iosd-imag

29074 root      20   0  106m  95m 6388 S  0.0  4.9   0:14.86 smand

24027 root      20   0  114m  61m  55m S  0.0  3.1   0:05.07 fman_rp

25227 root      20   0 27096  13m  12m S  0.0  0.7   0:04.35 imand

23174 root      20   0 33760  11m 9152 S  1.0  0.6   1:58.00 cmand

23489 root      20   0 23988 7372 4952 S  0.2  0.4   0:05.28 emd

24755 root      20   0 19708 6820 4472 S  1.0  0.3   3:39.33 hman

28475 root      20   0 20460 6448 4792 S  0.0  0.3   0:00.26 psd

27957 root      20   0 16688 5668 3300 S  0.0  0.3   0:00.18 plogd

14572 root      20   0  4576 2932 1308 S  0.0  0.1   0:02.37 reflector.sh

<snip>

Opmerking: Druk op Shift + M om de uitvoer in aflopende volgorde van geheugengebruik te sorteren.

Controleer het geheugengebruik op IOS

Als u opmerkt dat het linux_iosd-imageproces een ongewoon grote hoeveelheid geheugen in het platform softwareproces van de monitor actieve opdrachtoutput heeft, richt u uw inspanningen om de problemen op te lossen op de IOSd instantie. Het is waarschijnlijk dat een specifiek proces in de IOSd draad het geheugen niet vrijmaakt. Probleemoplossing voor problemen met betrekking tot het geheugen in het IOSd-exemplaar, op dezelfde manier als wanneer u softwaregebaseerde verzendplatforms, zoals Cisco 2800, 3800 of 3900 Series, probleemoplossing.

ASR1K# monitor platform software process rp active

PID   USER   PR  NI VIRT  RES  SHR  S  %CPU  %MEM TIME+    COMMAND

25794 root   20  0  2929m 1.9g 155m R  99.9  38.9 1415:11  linux_iosd-imag

23038 root   20  0  33848 13m  10m  S  5.9   0.4  30:53.87 cmand

9599  root   20  0  2648  1152 884  R  2.0   0.0  0:00.01  top

<snip>

Geef de opdracht op hoe procesgeheugen is gesorteerd om het probleemproces te identificeren:

ASR1000# show process memory sorted

Processor Pool Total: 1733568032  Used: 1261854564  Free: 471713468

lsmpi_io  Pool Total: 6295088     Used: 6294116     Free: 972

PID  TTY  Allocated   Freed       Holding    Getbufs    Retbufs  Process

522  0    1587708188  803356800   724777608  54432      0        BGP Router

234  0    3834576340  2644349464  232401568  286163388  15876    IP RIB Update

0    0    263244344   36307492    215384208  0          0        *Init

Opmerking: Open een TAC-case als u ondersteuning nodig hebt voor probleemoplossing of identificeer of het geheugengebruik legitiem is.

Controleer het TCAM-gebruik op een ASR1K

Verkeersclassificatie is een van de meest fundamentele functies die in routers en switches worden gevonden. Veel toepassingen en functies vereisen dat de infrastructuurauts deze gedifferentieerde diensten voor verschillende gebruikers leveren op basis van kwaliteitseisen. Het verkeersclassificatieproces moet snel zijn, zodat de doorvoersnelheid van het apparaat niet sterk achteruit gaat. Het ASR1K-platform gebruikt hiervoor de 4e generatie van Ternary Content Adresseerbare Geheugen (TCAM4).

Om het totale aantal TCAM-cellen dat op het platform beschikbaar is en het aantal vrije items dat overblijft te bepalen, voert u deze opdracht in:

ASR1000# show platform hardware qfp active tcam resource-manager usage

Total TCAM Cell Usage Information

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

Name                         : TCAM #0 on CPP #0

Total number of regions      : 3

Total tcam used cell entries : 65528

Total tcam free cell entries : 30422

Threshold status             : below critical limit

Opmerking: Cisco raadt u aan altijd de drempelstatus te controleren voordat u wijzigingen aanbrengt in het beleid voor toegangslijsten of Quality of Service (QoS), zodat de TCAM voldoende vrije cellen beschikbaar is om de items te kunnen programmeren.

Als de verzendende processor kritisch laag draait op gratis TCAM-cellen, kan ESP stammen genereren die vergelijkbaar zijn met de borden hieronder en kunnen storten. Als er geen redundantie is, leidt dit tot verstoring van het verkeer.

%CPPTCAMRM-6-TCAM_RSRC_ERR: SIP0: cpp_sp: Allocation failed because of insufficient

TCAM resources in the system.

%CPPOSLIB-3-ERROR_NOTIFY: SIP0: cpp_sp:cpp_sp encountered an error -

Traceback=1#s7f63914d8ef12b8456826243f3b60d7 errmsg:7EFFC525C000+1175

Controleer het geheugengebruik op QFP

Naast het fysieke geheugen is er ook geheugen gekoppeld aan de Quantum Flow Processor (QFP) ASIC die wordt gebruikt om gegevensstructuren door te sturen, waaronder gegevens zoals Forwarding Information Base (FIB) en QoS-beleid. De hoeveelheid DRAM die beschikbaar is voor de QFP ASIC is vastgesteld, met marges van 256 MB, 512 MB en 1 GB, afhankelijk van de ESP-module.

Voer de opdracht voor actieve infrastructuur van het platform hardware qfp in om het extremgeheugengebruik te bepalen. De som van het geheugen voor INRAM en DRAM dat wordt gebruikt geeft het totale QFP geheugen dat in gebruik is.

BGL.I.05-ASR1000-1# show platform hardware qfp active infra exmem statistics user

Type: Name: IRAM, CPP: 0

Allocations  Bytes-Alloc  Bytes-Total  User-Name

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

1            115200       115712       CPP_FIA

Type: Name: DRAM, CPP: 0

Allocations  Bytes-Alloc  Bytes-Total  User-Name

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

4            1344          4096         P/I

9            270600        276480       CEF

1            1138256       1138688      QM RM

1            4194304       4194304      TCAM

1            65536         65536        Qm 16

IRAM is het instructiegeheugen voor QFP-software. Als de DRAM is uitgeput, kan het beschikbare geheugen worden gebruikt. Als IRAM zeer laag op het geheugen loopt, kunt u deze foutmelding zien:

%QFPOOR-4-LOWRSRC_PERCENT: F1: cpp_ha: QFP 0 IRAM resource low - 97 percent depleted

%QFPOOR-4-LOWRSRC_PERCENT: F1: cpp_ha: QFP 0 IRAM resource low - 98 percent depleted

Om het proces te bepalen dat het meeste geheugen consumeert, voert u de opdracht van de gebruiker van de showplatform hardware qfp actieve infra statistieken in:

ASR1000# show platform hardware qfp active infra exmem statistics user

Type: Name: IRAM, CPP: 0

Allocations  Bytes-Alloc  Bytes-Total  User-Name

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

1            115200       115712       CPP_FIA

Type: Name: DRAM, CPP: 0

Allocations  Bytes-Alloc  Bytes-Total  User-Name

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

4          1344         4096         P/I

9          270600       276480       CEF

1          1138256      1138688      QM RM

1          4194304      4194304      TCAM

1          65536        65536        Qm 16