Dit document verklaart de redenen voor hoog CPU-gebruik als gevolg van onderbrekingen en biedt tips en richtlijnen voor probleemoplossing.
Er zijn geen specifieke vereisten van toepassing op dit document.
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.
Raadpleeg Cisco Technical Tips Conventions (Conventies voor technische tips van Cisco) voor meer informatie over documentconventies.
Het hoge gebruik van cpu op een onderbrekingsniveau wordt hoofdzakelijk veroorzaakt door pakketten die op onderbrekingsniveau worden behandeld. Onderbrekingen worden gegenereerd op elk moment dat een teken wordt uitgevoerd vanuit de console of hulppoorten van een router.
Universele asynchrone ontvanger/zenders (UARTs) zijn traag in vergelijking met de verwerkingssnelheid van de router, zodat het onwaarschijnlijk is, alhoewel mogelijk, dat console of hulponderbrekingen een hoog CPU-gebruik op de router kunnen veroorzaken (tenzij de router een groot aantal tty lijnen in gebruik heeft).
Er zijn verschillende redenen voor een hoog CPU-gebruik door onderbrekingen:
Er is een bug in de Cisco IOS®-software die op de router draait
Er zijn actieve Asynchronous Transfer Mode (ATM) interfaces op de router
Er worden te veel pakketten gekopieerd van PXF naar de routeprocessor (RSP)
Om dit potentiële probleem op te lossen, verifieert u het volgende:
Controleer of op de router Cisco Express Forwarding wordt uitgevoerd:
Controleer de configuratie voor de globale configuratieopdracht ip cef.
Controleer dat Cisco Express Forwarding is ingeschakeld en werkt door de opdracht show ip cef-samenvatting uit te geven.
Controleer dat Cisco Express Forwarding is ingeschakeld als switchingpad op alle interfaces. U kunt dit zien in tonen cef interface en ip interface output. Als Cisco Express Forwarding is geconfigureerd maar niet is ingeschakeld op een interface, betekent dit dat de interfacekapeling niet wordt ondersteund in Cisco Express Forwarding. Controleer dat Cisco Express Forwarding operationeel is. Controleer met andere woorden of pakketten echt door de router worden geschakeld met Cisco Express Forwarding door niet-cef-switched show te bekijken.
Met de show cef drop opdracht en de show interfaces switching opdracht (dit is een verborgen opdracht die u kunt gebruiken om te zoeken naar cachemisses), verifiëren dat Cisco Express Forwarding niet laat vallen pakketten. Als dit probleem zich voordoet, raadpleegt u de pagina Problemen oplossen van CEF.
Controleer of een van de interfaces lange toegangslijsten heeft geconfigureerd.
Als algemene vuistregel, wordt om het even welke toegangslijst met meer dan tien lijnen als lang beschouwd.
Het herhaaldelijk overlopen van lange toegangslijsten is zeer CPU-intensief. Met NetFlow-switching, als de stroom al in het cachegeheugen zit, hoeft u de toegangslijst niet meer te controleren. In dit geval zou NetFlow-switching dus nuttig zijn. U kunt NetFlow-switching inschakelen door de opdracht IP route-cache flow uit te geven.
Merk op dat als Cisco Express Forwarding en NetFlow beide op een interface zijn geconfigureerd, Cisco Express Forwarding zal worden gebruikt om een switching te beslissen.
Controleer of NetFlow-switching op de router is geconfigureerd:
Controleer de statistieken door het bevel van de showip cachestroom uit te geven. Kijk naar het aantal nieuwe stromen per seconde.
Als Cisco Express Forwarding niet is ingeschakeld, schakelt u Cisco Express Forwarding in om het switchingbesluit te versnellen.
Als er geen lange toegangslijsten zijn, probeer dan NetFlow uitschakelen.
Uitlijningsfouten worden veroorzaakt door verkeerd uitgelijnde lees- en schrijffouten. Een twee-byte lees, bijvoorbeeld, waar het geheugenadres geen even veelvoud van twee bytes is, is een uitlijningsfout.
Uitlijningsfouten worden meestal veroorzaakt door een softwarebug. De CPU corrigeert deze fout, maar als er veel correcties nodig zijn, wordt dit CPU-intensief. Zie Onjuiste toegang, Uitlijningsfouten en Onjuiste onderbrekingen oplossen voor informatie over dit type fout.
De output van de show interfaces en toont interfaces switching (verborgen) opdrachten informatie over welke interfaces overbelast zijn. Volg onderstaande stappen om de uitvoer van deze opdrachten in een logbestand voor latere analyse op te nemen.
Geef de opdracht terminal length 0 uit.
Controleer de output van show interfaces . Onderzoek de lading en het aantal gaspedalen op interfaces. De belasting is een gemiddelde waarde die standaard over vijf minuten wordt berekend. Als u dit interval wilt wijzigen, geeft u de opdracht load-interval seconden uit, waarbij de seconden de tijdsduur aangeven waarvoor de gegevens worden gebruikt om de belastingsstatistieken te berekenen. Gebruik een waarde die een veelvoud van 30 is.
Throttles zijn een goede indicatie van een overbelaste router. Zij tonen het aantal tijden de ontvanger op de haven is onbruikbaar gemaakt, misschien wegens buffer of processoroverbelasting. Samen met een hoog CPU-gebruik op een onderbrekingsniveau, geven throttles aan dat de router is overbelast met verkeer.
Controleer de uitvoer van de opdracht show interfaces switching (verborgen) om te zien welk soort verkeer (protocol en switchingpad) door de overbelaste interface gaat. Als sommige interfaces te overbelast zijn met verkeer, overweeg het herontwerpen van de verkeersstroom in het netwerk of het upgraden van de hardware.
De netwerklus kan ook een reden zijn voor de overbelasting van het verkeer. Controleer uw netwerktopologie.
Als er een mogelijkheid is dat één enkel apparaat pakketten aan een uiterst hoog tarief produceert en zo de router overladen, kunt u het adres van MAC van dat apparaat bepalen door het ip boekhoudings-MAC-adres {input|output} bevel van de interfaceconfiguratie aan de configuratie van de overbelaste interface toe te voegen.
De show interfaces [ ] mac-accounting opdracht toont de verzamelde informatie. Zodra het MAC-adres van het bronapparaat is gevonden, kan het corresponderende IP-adres worden gevonden door de uitvoer van de arp-opdracht show ip te controleren.
Als u een bug in de Cisco IOS-softwareversie die op de router wordt uitgevoerd vermoedt, kunt u de Bug Toolkit (alleen geregistreerde klanten) controleren op een bug die vergelijkbare symptomen in een vergelijkbare omgeving meldt.
Zelfs als er geen verkeer is, blijft de software kanaal-geassocieerde signalering (CAS) controleren, die de middelen van cpu gebruikt.
Zelfs als er geen verkeer is, sturen de ATM interfaces ongeldige cel (per ATM-standaard) en blijven ze CPU-bronnen gebruiken.
Wanneer PXF te veel pakketten doorgeeft aan de RP, kan de RP overbelast raken. U kunt de hoeveelheid gepunte pakketten met het totale aantal inkomende pakketten vergelijken door de show pxf accounting summiere opdracht uit te geven. Gebruik dezelfde opdracht om te weten te komen waarom de pakketten aan de RP worden gestraft. Dit kan een softwarebug zijn of het verkeer wordt niet ondersteund door PXF.
CPU profilering is een low-overhead manier om te bepalen waar de CPU haar tijd doorbrengt. Het systeem werkt door elke vier milliseconden de processorlocatie te controleren. Het aantal voor die locatie in het geheugen wordt verhoogd. De basisoorzaak van dit CPU-gebruik wordt bepaald door CPU-profilering.
Voltooi deze stappen om CPU-profilering uit te voeren. CPU-gebruik is mogelijk wanneer u een hoog CPU-gebruik ondervindt.
N.B.: Al deze opdrachten moeten worden getypt wanneer ze in de activeringsmodus staan
Leg de uitvoer van het weergavegebied vast en neem het beginadres, het eindadres en de grootte van het hoofdgebied:tekstgebied
Leg de output van show memory statistics vast en controleer de grootte van het grootste blok in het processorgeheugen.
Profieltaak onderbreekt niet om profilering alleen voor onderbrekingen te configureren.
Vergelijk de grootte van hoofd:tekst gebied met de grootte van het grootste blok van gratis processorgeheugen. Idealiter moet het grootste blok groter zijn dan het hoofdblok:tekst.
Als het grootste blok kleiner is dan main:text size, dan pas de granulariteit aan om ervoor te zorgen dat het profileren een blok van processorgeheugen zal kunnen krijgen.
Als het grootste blok groter is dan hoofd:tekst gebied, gebruik een granulariteit van 4.
Als het grootste blok groter is dan de helft van de hoofd:tekst gebied, gebruik een granulariteit van 8.
Als het grootste blok groter is dan een kwart van het hoofd:tekst gebied, gebruik een granulariteit van 10 (16 in hexadecimaal).
Opmerking: de granulariteit moet een kracht van 2 zijn en moet zo klein mogelijk zijn (maar niet kleiner dan 4)
Start het profileren door profiel te maken
Profile <starting address> <ending address> <granularity value>
Het beginadres en het eindadres worden bepaald in Stap 1.
5 tot 10 minuten wachten
Stop het profileren door profielstop te doen
Leg de uitvoer van profiellijnen weer.
Zorg ervoor dat het geheugen wordt vrijgemaakt door alles zonder profiel te doen
Deze opdracht wordt gebruikt voor het bepalen van actieve switchingpaden op interfaces. Raadpleeg Switchingpaden configureren voor meer informatie over switchingpaden in Cisco IOS-software.
Het volgende is een steekproefoutput van de show interfaces schakelend bevel voor één interface:
RouterA#show interfaces switching Ethernet0 Throttle count 0 Drops RP 0 SP 0 SPD Flushes Fast 0 SSE 0 SPD Aggress Fast 0 SPD Priority Inputs 0 Drops 0 Protocol Path Pkts In Chars In Pkts Out Chars Out Other Process 0 0 595 35700 Cache misses 0 Fast 0 0 0 0 Auton/SSE 0 0 0 0 IP Process 4 456 4 456 Cache misses 0 Fast 0 0 0 0 Auton/SSE 0 0 0 0 IPX Process 0 0 2 120 Cache misses 0 Fast 0 0 0 0 Auton/SSE 0 0 0 0 Trans. Bridge Process 0 0 0 0 Cache misses 0 Fast 11 660 0 0 Auton/SSE 0 0 0 0 DEC MOP Process 0 0 10 770 Cache misses 0 Fast 0 0 0 0 Auton/SSE 0 0 0 0 ARP Process 1 60 2 120 Cache misses 0 Fast 0 0 0 0 Auton/SSE 0 0 0 0 CDP Process 200 63700 100 31183 Cache misses 0 Fast 0 0 0 0 Auton/SSE 0 0 0 0
De output maakt een lijst van de omschakelingswegen voor alle protocollen die op de interface worden gevormd, zodat kunt u gemakkelijk zien wat soort en hoeveelheid verkeer door de router gaat. De volgende tabel verklaart de uitvoervelden:
Veld | Definitie |
---|---|
Proces | Verwerkte pakketten. Dit kunnen pakketten zijn die voor de router zijn bestemd, of pakketten waarvoor er geen ingang in het snelle omschakelingscachegeheugen was. |
Cache-missen | Pakketten waarvoor er geen ingang in snel omschakelingscachegeheugen was. Het eerste pakket voor deze bestemming (of stroom - afhankelijk van het type snelle geconfigureerd switching) zal worden verwerkt. Alle verdere pakketten zullen snel worden geschakeld, tenzij de snelle omschakeling uitdrukkelijk onbruikbaar wordt gemaakt op de uitgaande interface. |
Snel | Snel switched pakketten. Fast switching is standaard ingeschakeld. |
Automatisch/SSE | Autonoom switched, silicium switched, of gedistribueerde switched pakketten. Alleen beschikbaar op Cisco 7000 Series routers met een Switch Processor of Silicium Switch Processor (respectievelijk voor autonome switching of silicium switching), of op Cisco 7500 Series routers met een VIP (voor gedistribueerde switching). |
Dit script slaat de output op flash:CPU_profile op wanneer het CPU-gebruik meer dan 75% bedraagt:
service internal event manager applet High_CPU event snmp oid 1.3.6.1.4.1.9.9.109.1.1.1.1.6 get-type next entry-opge entry-val 75 exit-time 10 poll-interval 5 action 0.1 syslog msg "CPU Utilization is high" action 0.2 cli command "enable" action 0.4 cli command "show log | append flash:CPU_Profile.txt" action 0.5 cli command "show process cpu sorted | append flash:CPU_Profile.txt" action 0.6 cli command "show interfaces | append flash:CPU_Profile.txt" action 1.1 cli command "configure terminal" action 1.2 cli command "profile xxxxxxx yyyyyyyyZ" action 1.3 cli command "profile start" action 2.3 syslog msg "Entering TCLSH" action 2.4 cli command "tclsh" action 2.5 cli command "after 240000" action 2.6 cli command "exit" action 2.9 syslog msg "Exiting TCLSH" action 3.0 cli command "profile stop" action 3.1 cli command "show profile terse | append flash:CPU_Profile.txt" action 3.2 cli command "clear profile" action 3.3 cli command "unprofile all" action 4.1 syslog msg "Finished logging information to flash:CPU_Profile.txt..." action 4.2 cli command "end"
Revisie | Publicatiedatum | Opmerkingen |
---|---|---|
1.0 |
29-May-2008 |
Eerste vrijgave |