Dit document legt de redenen voor een hoog CPU-gebruik door onderbrekingen uit en biedt tips voor het oplossen van problemen en richtlijnen.
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.
Een hoog CPU-gebruik op een niveau van onderbreking wordt primair veroorzaakt door pakketten die op een niveau van onderbreking worden verwerkt. Onderbreken worden gegenereerd wanneer een teken uit de console of de hulppoorten van een router wordt uitgevoerd.
Universele Asynchronous ontvanger/zenders (UARTs) zijn traag vergeleken met de verwerkingssnelheid van de router, dus is het onwaarschijnlijk, 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 actief is
Er zijn actieve Asynchronous Transfer Mode (ATM) interfaces op de router
Te veel pakketten worden geleid van PXF naar de routeprocessor (RP)
Als u problemen wilt oplossen bij dit potentiële probleem, controleert u het volgende:
Controleer of de router Cisco Express Forwarding uitvoert:
Controleer dat Cisco Express Forwarding ingeschakeld is en werkt door de opdracht samenvatting van de show ip cef uit te geven.
Controleer dat Cisco Express Forwarding is ingeschakeld als het switchpad op alle interfaces. U kunt dit zien in de DIF-interface van het show en de IP-interface-uitvoer tonen. Als Cisco Express Forwarding is ingesteld maar niet ingeschakeld op een interface, betekent dit dat de interface-insluiting niet wordt ondersteund in Cisco Express Forwarding. Controleer dat Cisco Express Forwarding operationeel is, dat wil zeggen, controleer of pakketten werkelijk door de router worden geschakeld die Cisco Express Forwarding gebruikt door naar de show Cef niet-cef-switched te kijken.
Gebruik de opdracht Show cef-druppelopdracht en de show interfaces -switching opdracht (dit is een verborgen opdracht die u kunt gebruiken om op cachestraties te zoeken), controleer of Cisco Express Forwarding geen pakketten laat vallen. Als dit probleem zich voordoet, zie de pagina Problemen oplossen bij CEF.
Controleer of een van de interfaces lange toegangslijsten heeft.
Als algemene vuistregel wordt elke toegangslijst met meer dan tien lijnen als lang beschouwd.
Het herhaaldelijk overlopen op lange toegangslijsten is zeer CPU-intensief. Met NetFlow-switching, als de flow al in het cache staat, hoeft u niet langer de toegangslijst te controleren. In dit geval zou NetFlow-switching nuttig zijn. U kunt NetFlow-switching inschakelen door de IP-route-cache-opdracht uit te geven.
Als Cisco Express Forwarding en NetFlow beide op een interface zijn geconfigureerd, wordt Cisco Express Forwarding gebruikt om een switching-besluit te nemen.
Controleer dat NetFlow-switching op de router is ingesteld:
Controleer de statistieken door de show ip cache flow opdracht 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 de switching-beslissing te versnellen.
Als er geen lange toegangslijsten zijn, probeer dan de NetFlow-switching uit te schakelen.
De fouten van de uitlijning worden veroorzaakt door verkeerd uitgelijnde teksten en schrijft. Bijvoorbeeld, een lezen van twee bytes waar het geheugenadres geen zelfs meerdere van twee bytes is is een gelijkingsfout.
Lijnfouten worden meestal veroorzaakt door een softwarebug. De CPU corrigeert deze fout, maar als er veel te doen correcties zijn, wordt deze CPU-intensief. Zie Problemen oplossen bij dit type fouten en kennelijke fouten en verstoringen in de uitlijning van problemen oplossen.
De output van de show interfaces en de show interfaces die (verborgen) overschakelen verstrekken informatie over welke interfaces worden overbelast. Om de uitvoer van deze opdrachten in een logbestand op te nemen voor een latere analyse, volgt u de onderstaande stappen.
Geef de eindlengte 0 opdracht uit.
Controleer de uitvoer van showinterfaces. Onderzoek de lading en het aantal bloedvatten op interfaces. De lading is een gemiddelde waarde die, standaard, over vijf minuten wordt berekend. Om dit interval te veranderen, geeft de opdracht load-interval seconden uit, waar de seconden de lengte vertegenwoordigen van de tijd waarvoor gegevens gebruikt worden om de belastingsstatistieken te berekenen. Gebruik een waarde die een veelvoud van 30 is.
Trots zijn een goede indicatie van een overbelaste router. Zij tonen het aantal keren dat de ontvanger in de haven is uitgeschakeld, mogelijk door overbelasting van buffer of processor. Samen met een hoog CPU-gebruik op een onderbreekt niveau duiden de stijlen erop dat de router met verkeer wordt overbelast.
Controleer de uitvoer van de show interfaces die (verborgen) opdracht veranderen om te zien wat voor verkeer (protocol en switchpad) door de overbelaste interface gaat. Als sommige interfaces te overbelast zijn met verkeer, kunt u overwegen de verkeersstroom in het netwerk opnieuw te ontwerpen of de hardware te verbeteren.
De netwerklus kan ook een reden voor de verkeersoverbelasting zijn. Controleer de netwerktopologie.
Als er een mogelijkheid is dat één apparaat pakketten met een extreem hoge snelheid genereert en dus de router overbelast, kunt u het MAC-adres van dat apparaat bepalen door het ip accounting mac-adres {input|output} interface configuratiebevel toe te voegen aan de configuratie van de overbelaste interface.
De opdracht Show interfaces [ ] mac-accounting toont de verzamelde informatie. Zodra het MAC-adres van het bronapparaat is gevonden, kan het corresponderende IP-adres gevonden worden door de uitvoer van het IP-commando te controleren.
Als u een bug in de Cisco IOS softwareversie vermoedt die op de router actief is, kunt u de Bug Toolkit controleren (alleen geregistreerde klanten) voor een bug die soortgelijke symptomen in een vergelijkbaar milieu meldt.
Zelfs als er geen verkeer is, blijft de software kanaalgekoppelde signalering (CAS) controleren, die CPU-bronnen gebruikt.
Zelfs als er geen verkeer is, sturen de ATM interfaces ongeldige cellen (per ATM-standaarden) uit en blijven zij CPU-bronnen gebruiken.
Wanneer PXF te veel pakketten aan de RP prikt, kan RP worden overbelast. U kunt de hoeveelheid gepunte pakketten vergelijken met de totale hoeveelheid binnenkomende pakketten door de opdracht van de samenvatting van de weergave van het pxf-account uit te geven. Gebruik dezelfde opdracht om uit te zoeken waarom de pakketten aan RP worden gestraft. Dit kan een softwarebug zijn of een verkeer wordt niet ondersteund door PXF.
CPU-profilering is een methode waarbij de tijd laag is om te bepalen waar de CPU zijn tijd besteedt. Het systeem werkt door elke vier milliseconden de plaats van de processor te bemonsteren. De telling voor die locatie in het geheugen wordt verhoogd. De grondoorzaak van dit CPU-gebruik wordt bepaald door CPU-profielen.
Voltooi deze stappen om een CPU-profilering uit te voeren. Het CPU-gebruik is uitgevoerd wanneer u een hoog CPU-gebruik ervaart.
N.B.: Al deze opdrachten moeten worden getypt wanneer u de modus activeert
Leg de uitvoer van het toongebied vast en neem het beginadres, het eindadres en de grootte van het hoofdgebied:tekstgebied
Leg de output van show geheugenstatistieken op en controleer de grootte van het grootste blok in processorgeheugen.
De profieltaak onderbreekt niet om alleen profilering voor onderbrekingen te configureren.
Vergelijk de grootte van hoofdbestand:tekstgebied met de grootte van het grootste blok gratis processorgeheugen. Idealiter zou het grootste blok groter moeten zijn dan het hoofdblok:tekst.
Als het grootste blok kleiner is dan main:tekstgrootte, dan pas de granulariteit aan om te verzekeren dat het profileren een blok van het processorgeheugen zal kunnen krijgen.
Als het grootste blok groter is dan het hoofdblok:tekstgebied, gebruik een granulariteit van 4.
Als het grootste blok groter is dan de helft van het hoofdblok:tekstgebied, gebruik een granulariteit van 8.
Als het grootste blok groter is dan een kwart van het hoofdgebied:tekstgebied, gebruik een granulariteit van 10 (16 in hexadecimaal).
Opmerking: Gedetailleerdheid moet een vermogen van 2 zijn en moet zo klein mogelijk zijn (maar niet kleiner dan 4)
Profileren starten door profiel uit te voeren
Profile <starting address> <ending address> <granularity value>
Het beginadres en het eindadres worden in Stap 1 bepaald.
Wacht 5 tot 10 minuten
Stop met profileren door profielstop te zetten
Leg de uitvoer van viezenprofiel vast.
Zorg ervoor dat het geheugen wordt bevrijd door alle activiteiten onbekend te maken
Deze opdracht wordt gebruikt voor het bepalen van actieve switchpaden op interfaces. Raadpleeg voor meer informatie over switching paden in Cisco IOS-software het configureren van switchingpaden.
Het volgende is een steekproefuitvoer van de show interfaces switching opdracht 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 switchpaden voor alle protocollen die op de interface worden geconfigureerd, zodat u eenvoudig kunt zien wat voor soort en de hoeveelheid verkeer door de router gaat. De volgende tabel verklaart de uitvoervelden:
Veld | Definitie |
---|---|
verwerken | Verwerkte pakketten. Dit kunnen pakketten zijn die voor de router bestemd zijn, of pakketten waarvoor geen ingang in het snelle schakelcache was. |
Gebiedsfouten | Pakketten waarvoor geen ingang in snel schakelcache was. Het eerste pakket voor deze bestemming (of stroom - afhankelijk van het type snelle switching ingesteld) wordt verwerkt. Alle volgende pakketten worden snel geschakeld, tenzij de snelle omschakeling uitdrukkelijk op de uitgaande interface wordt uitgeschakeld. |
Snel | Snel geschakelde pakketten. Snelle switching is standaard ingeschakeld. |
Auton/SSE | Autonoom geschakeld, silicium geschakeld, of verdeelde geschakelde pakketten. Verkrijgbaar alleen op Cisco 7000 Series routers met een Switch-processor of een Silicon-Switch-processor (voor autonome switching of silicium-switching, respectievelijk) of op Cisco 7500 Series routers met een VIP (voor gedistribueerde switching). |
Dit script slaat de output op flitser op:CPU_profiel bij een CPU-gebruik van meer dan 75%:
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 |