Inhoud

Inleiding

Voorwaarden

Vereisten

Gebruikte componenten

Symptomen van hoog CPU-gebruik

Probleemoplossing met hoog CPU-gebruik

Oorzaken bepalen en probleem oplossen

Hoog CPU-gebruik door onderbrekingen

Hoge CPU bij het inschakelen van NetFlow NDE op Cisco 7600 Series router

Hoog CPU-gebruik dankzij processen

PCI- en FAST Memory Pools zijn zeer intensief gebruikt

%SNMP-4-HIGHCPU: proces overschrijdt drempel [dec]ms ([dec]ms IOS quantum) voor [chars] van [chars]—resultaat [chars]

Hoge CPU’s vanwege softwareversleuteling

Hoog CPU-gebruik door fragmentatie

Opdrachten om meer informatie te verkrijgen

De show verwerkt cpu Command

De show interfaceert Opdracht

De show interfaces switching Opdracht

De show interfaces start Opdracht

De opdracht IP NAT-vertalingen tonen

De show richt de Opdracht

De showversie Opdracht

De opdracht logbestand tonen

EEM-scripts voor automatische gegevensverzameling in hoge CPU-omstandigheden

Voorbeeld van een EM-script met de SNMP-id

Voorbeeld van een EM-script met de CPU-meldingen van drempelwaarden

Voorbeeld van EEM Script om CPU-profiel te starten/stoppen

UNIX Shell Script voor periodieke gegevensverzameling

Gerelateerde informatie

Inleiding

Dit document beschrijft algemene symptomen en oorzaken van een hoog CPU-gebruik op Cisco-routers en biedt richtlijnen en oplossingen voor gebruikelijke problemen.

Voorwaarden

Vereisten

Cisco raadt kennis van de volgende onderwerpen aan:

- Cisco-routers

- Cisco IOS®-softwareswitchpaden

Zie Basics voor prestatieafstemming voor informatie over Cisco IOS-softwarereleases.

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 zorgen dat u de potentiële impact van elke opdracht begrijpt.

Symptomen van hoog CPU-gebruik

In deze lijst worden veel voorkomende symptomen van een hoog CPU-gebruik beschreven. Als u een van deze symptomen opmerkt, kunt u het probleem oplossen met de stappen die in dit document worden geleverd.

- Hoge percentages in het  show processes cpu  opdrachtoutput.

Als u de uitvoer van een cpu-opdracht voor showprocessen hebt van uw Cisco-apparaat, kunt u Cisco CLI Analyzer gebruiken om potentiële problemen en oplossingen weer te geven.

Opmerking: om Cisco CLI Analyzer te kunnen gebruiken, moet u een geregistreerde Cisco-gebruiker zijn, aangemeld zijn en JavaScript hebben ingeschakeld.

- Langzame prestaties

- De diensten op de router reageren niet, bijvoorbeeld:

- Langzame reactie in Telnet of niet in staat aan Telnet aan de router

- Langzame reactie op de console

- Langzaam of geen antwoord op ping

- De router verzendt geen routerupdates naar andere routers

- Hoge bufferstoringen

Probleemoplossing met hoog CPU-gebruik

Zodra u een van de symptomen van de Symptomen van hoog CPU-gebruik opmerkt:

- Controleer op een mogelijk beveiligingsprobleem. Doorgaans wordt een hoog CPU-gebruik veroorzaakt door een beveiligingsprobleem, zoals een worm of virus dat in uw netwerk actief is. Dit is vooral waarschijnlijk de oorzaak als er geen recente veranderingen in het netwerk zijn geweest. Gewoonlijk, kan een configuratieverandering, wanneer u extra lijnen aan uw toegangslijsten toevoegt de gevolgen van dit probleem verlichten. Cisco Product Security Advisories en kennisgevingen bevatten informatie over de detectie van de meest waarschijnlijke oorzaken en specifieke omzeilingen.

Zie voor meer informatie:

- 100 Vragen en antwoorden over Internet Threats

- Cisco Product Security Advisories en kennisgevingen

- Cisco-controle op bedreigingen

- Controleer alle  debug  de opdrachten in uw router worden uitgeschakeld met de undebug all of no debug all  opdrachten.

- Bent u in staat om uit te geven  show opdrachten op de router? Zo ja, begin dan onmiddellijk met het verzamelen van meer informatie  show opdrachten.

- Is de router ontoegankelijk? Kun je dit probleem reproduceren? Als ja, macht-cyclus de router en, alvorens u het probleem reproduceert, vorm  scheduler interval 500  uit. Dit plant processen met een lage prioriteit om elke 500 milliseconden uit te voeren, wat u de tijd geeft om bepaalde opdrachten uit te voeren, zelfs als het CPU-gebruik 100 procent bedraagt. Gebruik op Cisco 7200 en Cisco 7500 Series routers de  scheduler allocate 3000 1000  uit.

- Toont de router symptomen van hoog CPU-gebruik met korte en onvoorspelbare intervallen? Zo ja, verzamelt periodiek de output van de  show processes cpu  bevel, dat toont als het hoge gebruik van cpu door onderbrekingen of door een bepaald proces wordt veroorzaakt. Gebruik dit UNIX-script en wijzig het script op basis van wat je eerst vindt om gegevens te verzamelen die nodig zijn voor verder onderzoek naar het probleem.

Oorzaken bepalen en probleem oplossen

Gebruik de cpu van showprocessen om te controleren of het cpu-gebruik hoog is door onderbrekingen of processen.

Hoog CPU-gebruik door onderbrekingen

Raadpleeg voor meer informatie Problemen oplossen en hoog CPU-gebruik veroorzaakt door onderbrekingen. Als het niveau van de CPU stijgt vanwege onderbrekingen die waarschijnlijk te wijten zijn aan CEF-switchingpakketten, heeft het niveau van de CPU geen invloed op de routerprestaties.

Hoge CPU bij het inschakelen van NetFlow NDE op Cisco 7600 Series router

Als NetFlow is geconfigureerd voor versie 7, wordt de flow uitgevoerd door de Routing Processor, die een hoog CPU-gebruik kan veroorzaken.

Om problemen op te lossen het hoge CPU-gebruik vanwege NetFlow versie 7, configureer mls nde sender versie 5, als de NetFlow-export wordt uitgevoerd door de SP, die het standaard is voor versie 5 of versie 9.

Hoog CPU-gebruik dankzij processen

Controleer welk proces de CPU laadt. Ongebruikelijke activiteit met betrekking tot een proces resulteert in een foutmelding in het logbestand. De productie van de show logging exec  De opdracht moet eerst worden gecontroleerd op fouten die betrekking hebben op het proces dat veel CPU-cycli in beslag neemt.

U kunt debug-opdrachten gebruiken om een hoog CPU-gebruik in deze processen op te lossen. Debug commando's moeten met uiterste voorzichtigheid uitgevoerd worden omdat dit het CPU gebruik nog verder kan verhogen. Aan deze voorwaarden moet worden voldaan om debug-opdrachten veilig te kunnen gebruiken:

- Alle logboekbestemmingen, met uitzondering van bufferlogboekregistratie, moeten worden uitgeschakeld of hun niveau van logboekstrengheid moet worden verlaagd van 7 (debugging) naar 6 (informatieve) of minder, met gebruik van de juiste  logging destination [ severity-level ]  configuration  uit. Om te zien welke logboekbestemmingen en bijbehorende niveaus zijn ingeschakeld, leest u de kopregels van de show logging exec uit.

- De omvang van de logbuffers moet worden vergroot om voldoende informatie te kunnen verzamelen. Zie voor meer informatie de beschrijving van de  logging buffer global configuration  uit.

- Om debugs beter te kunnen lezen en begrijpen, moeten de datumtijd en milliseconden tijdstempels zijn ingeschakeld. Zie voor meer informatie de beschrijving van de service timestamps global configuration  uit.

Een voorbeeld-debugging sessie van IP-pakketten wordt geleverd in Problemen oplossen met hoog CPU-gebruik in het IP-invoerproces.

Raadpleeg voor het oplossen van problemen met een hoog CPU-gebruik in specifieke processen:

- ARP Invoer-ARP Invoer sectie van het document Problemen oplossen Hoge CPU-gebruik toe te schrijven aan Processen.

- BGP router—hoge CPU dankzij sectie van het BGP-routerproces van het document Problemen oplossen bij hoge CPU’s, veroorzaakt door de BGP-scanner of het BGP-routerproces.

- BGP-scanner: hoge CPU vanwege het gedeelte BGP-scanner van het document Problemen oplossen bij hoge CPU’s veroorzaakt door het BGP-scanner- of BGP-routerproces.

- EXEC: gebruik van hoge CPU’s in de EXEC- en Virtual EXEC-processen.

- HyBridge Input-Probleemoplossing Hoge CPU-gebruik veroorzaakt door het HyBridge Input-proces op routers met ATM-interfaces.

- IP-ingang: hoge CPU-benutting voor probleemoplossing als gevolg van het IP-invoerproces.

- IP Simple Network Management Protocol (SNMP)—IP Simple Network Management Protocol (SNMP) veroorzaakt hoog CPU-gebruik.

- LC ADJ Updater - Wat veroorzaakt een hoog CPU-gebruik in het LC Adjacency Updater-proces op een Cisco 12000 Series internetrouter?

- TCP-timer—TCP-timer van het document Problemen oplossen Hoog CPU-gebruik door processen.

- TTY Achtergrond-TTY Achtergrond sectie van het document Problemen oplossen Hoge CPU-gebruik toe te schrijven aan Processen.

- Virtual EXEC — Zie de link voor EXEC. Hoog CPU-gebruik in Exec- en Virtual Exec-processen.

- Vtemplate Backgr—virtuele sjabloon Achtergrond sectie van het document Problemen oplossen Hoog CPU-gebruik vanwege de Processen.

- SSH-proces—Kan hoog gaan als het een show tech Of debug is ingeschakeld.

- Andere processen—Andere processen in het document, Problemen oplossen en Hoog CPU-gebruik dankzij de Processen.

PCI- en FAST Memory Pools zijn zeer intensief gebruikt

Het is normaal om laag vrij geheugen te zien met PCI en Fast geheugenpools. Het PCI-geheugen wordt gebruikt voor geheugentoegang tot de GT64260-controller op het PRP-moederbord voor de PCI-bussen die erop zijn aangesloten. Dit geheugen wordt gebruikt voor interne communicatie tussen de systeemcontroller en andere onderdelen, dus het lijkt voortdurend hoog.

Als er meer geheugen nodig is, valt dit terug naar het geheugen van de processorpool. Het Fast-geheugen is een kleine hoeveelheid geheugen die is gereserveerd voor gebruik door de hardware Interface Descriptor Block (IDB) datastructuren. Dit geheugen is ook volledig gereserveerd tijdens bootup, dus het wordt altijd zo hoog weergegeven omdat het geheugen volledig wordt gebruikt. Daarom is het normaal om laag gratis geheugen te zien met de Fast memory pool.

%SNMP-4-HIGHCPU: proces overschrijdt drempel [dec]ms ([dec]ms IOS quantum) voor [chars] van [chars]—resultaat [chars]

Het CPU-fragmentatiebericht ziet er als volgt uit:

SNMP-4-HIGHCPU: Process exceeds 200ms threshold (200ms Cisco IOS quantum)

for GET of rmon.19.16.0--result rmon.19.16.0

Er is in 12.4(13) een nieuw syslogbericht (HIGHCPU) toegevoegd aan Cisco IOS. Als een proces meer dan 200 ms op de CPU is aangesloten, wordt er een HIGHCPU-bericht weergegeven. Het HIGHCPU-bericht heeft geen invloed op de router. Je weet alleen maar wat het proces heeft veroorzaakt voor de hoge CPU. Het HIGHCPU-bericht is vergelijkbaar met het CPUHOG-bericht, maar het HIGHCPU-bericht heeft een veel lagere tolerantiedrempel, bij 1/10 van de tijd in vergelijking met een CPUHOG-bericht, dat wil zeggen gemeten in milliseconden). In versies voorafgaand aan 12.4(13) op de 2600, liep de processen voor langere tijd maar genereerde geen berichten omdat de Cisco IOS versies deze verbetering niet hadden.

SNMP-PDU-verwerking (MIB-objectvragen) wordt verondersteld te worden uitgevoerd in één enkele CPU-tijdkwantum om ervoor te zorgen dat elk object in de PDU tegelijkertijd wordt opgehaald. Dit is een vereiste die door de SNMP-protocolnorm wordt opgelegd. Sommige objecten zijn aggregaten van een hoop gegevens in het systeem, dus, ook al zijn ze enkele objecten, er is veel verwerking in het spel vanwege de manier waarop ze worden geïnstrumenteerd. Als zij niet opgeven van de CPU, zoals vereist door MIB instrumentatieregels, is er een mogelijkheid van deze foutmelding. Bovendien, als u meerdere verschillende objecten in dezelfde objectgroep/tabel opraapt en de foutmelding krijgt, is niet ongebruikelijk om dezelfde reden.

Dit bericht wordt gebruikt om objecten te identificeren die meer CPU-tijd gebruiken dan verwacht (maar nog steeds niet CPUHOG). Sommige NMS/instrumentatie-instrumenten gedragen zich niet goed bij de stemming. Dit probleem is gedocumenteerd in Cisco bug-id CSCsl18139.

Opmerking: alleen geregistreerde Cisco-gebruikers hebben toegang tot interne tools en buginformatie.

Hoge CPU’s vanwege softwareversleuteling

Als er geen hardware encryptie module is geïnstalleerd in het apparaat, dan komt al gecodeerd verkeer door het apparaat moet worden versleuteld door de software. Dit is erg CPU-intensief. Het gebruik van softwarecodering voor encryptie-implementaties met een redelijke doorvoersnelheid wordt afgeraden. Eén van de opties om dit probleem op te lossen is het volume van versleuteld verkeer te verminderen (routeverkeer omleiden of de stromen beperken die versleuteld zijn). De beste manier om dit probleem aan te pakken is echter om een Hardware Encryption-module voor dit apparaat te installeren, waardoor de noodzaak van codering via de software wordt uitgeschakeld.

Opmerking: als u crypto-kaarten op Tunnel/fysieke interfaces inschakelt, veroorzaakt dit het geheugenverbruik proces en kan dit een toename van CPU veroorzaken.

Hoog CPU-gebruik door fragmentatie

Hermontage kan de CPU zeer hoog opdrijven als de CPU een groot aantal pakketten moet reassembleren.

Om het hoge gebruik van cpu toe te schrijven aan fragmentatie problemen op te lossen, geef het tcp mss-pas 1400 bevel op de interface uit die de maximumwaarde van de segmentgrootte (MSS) van TCP synchroniseert/begint (SYN) pakketten plaatst die door een router gaan.

Opdrachten om meer informatie te verkrijgen

Deze opdrachten geven meer informatie over het probleem:

- show processes cpu

- show interfaces

- show interfaces switching

- show interfaces stat

- show ip nat translations

- show align

- show version

- show log

Zie de Opdrachtreferentie voor de Cisco IOS Configuration Fundamentals voor meer informatie over showopdrachten.

Als de router volledig ontoegankelijk is, eerst macht-cyclus het. Vervolgens verzamelt u periodiek de uitvoer van de opdrachten in deze sectie, met uitzondering van de  show log  bevel, waarvan de berichten moeten worden aangemeld op een syslogserver. Het interval om de output te verzamelen moet vijf minuten zijn. U kunt de gegevens handmatig of automatisch verzamelen, met dit Unix shell-script . U kunt ook gegevens verzamelen met HTTP of SNMP.

Het show processes cpu  Opdracht

Dit is een voorbeeld show processes cpu  uit.

CPU utilization for five seconds: X%/Y%; one minute: Z%; five minutes: W%

PID  Runtime(ms)  Invoked  uSecs    5Sec   1Min   5Min TTY Process

In deze tabel worden de velden in de kop beschreven:

Veld

Beschrijving

X

Gemiddelde totale benutting gedurende de laatste vijf seconden (onderbrekingen + processen)

Y

Gemiddelde benutting door onderbrekingen, gedurende de laatste vijf seconden^1

Z

Gemiddelde totale benutting gedurende last minute^2

B

Gemiddelde totale benutting gedurende de laatste vijf minuten^2

PID

Proces-ID

Runtime

CPU-tijd die het proces heeft gebruikt (in milliseconden)

Aangeroepen

Aantal keren dat een proces is aangeroepen

Seconden

Microseconden CPU-tijd voor elke aanroeping

5 sec.

CPU-gebruik per taak in de afgelopen vijf seconden

1 min.

CPU-gebruik per taak in de laatste minuut^2

5 min.

CPU-gebruik per taak in de afgelopen vijf minuten^2

TTY

Terminal die het proces regelt

Proces

Naam van het proces

1CPU-gebruik op procesniveau = X - Y

2Waarden vertegenwoordigen geen rekenkundig gemiddelde, maar een exponentieel verwaterd gemiddelde. Recentere waarden hebben dus meer invloed op het berekende gemiddelde.

Zie voor meer informatie de referentiehandleiding voor showopdrachten.

Opmerking: het totale CPU-gebruik mag niet worden gebruikt als een maat voor de mogelijkheid van de router om meer pakketten in switch te brengen. Op Cisco 7500 routers melden veelzijdige interfaceprocessors (VIP’s) en route/Switch-processors (RSP’s) geen lineair CPU-gebruik. Bijna de helft van de switching packet-per-seconde voeding komt na 90 tot 95 procent CPU-gebruik.

Het show interfaces Opdracht

Deze opdracht wordt gebruikt om actieve interfaces te bepalen.

Het show interfaces switching  Opdracht

Deze opdracht wordt gebruikt om actieve switchingpaden op interfaces te bepalen.

Dit is een voorbeelduitvoer 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 omschakelingswegen voor alle protocollen die op de interface worden gevormd, zodat kunt u gemakkelijk zien wat soort en hoeveelheid verkeer dat door de router gaat. Deze 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 - hangt af van het type snelle geconfigureerd switching) wordt verwerkt. Alle volgende pakketten worden snel geschakeld, tenzij snelle switching expliciet is uitgeschakeld in 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).

Het  show interfaces stat  Opdracht

Deze opdracht is een samengevatte versie van de show interfaces switching  uit. Dit is een voorbeelduitvoer voor één interface:

RouterA#show interfaces stat

Ethernet0

Switching path    Pkts In   Chars In   Pkts Out  Chars Out

Processor      52077   12245489      24646    3170041

Route cache          0          0          0          0

Distributed cache          0          0          0          0

Total      52077   12245489      24646    3170041

De output van de  show interfaces stat  De opdracht is anders voor verschillende platforms en is afhankelijk van beschikbare en geconfigureerde switchingpaden.

Het  show ip nat translations  Opdracht

Het show ip nat translations  Het bevel toont de Vertaling van het Netwerkadres (NAT) vertalingen actief op de router. Elke actieve vertaling genereert CPU-onderbrekingen en heeft een invloed op het totale CPU-gebruik van de router. Een zeer groot aantal vertalingen kan een prestatieseffect op de router hebben.

Dit is een voorbeelduitvoer van de  show ip nat translations  opdracht:

router#show ip nat translations

Pro Inside global    Inside local    Outside local    Outside global

--- 172.16.131.1     10.10.10.1      ---              ---

Het  show align  Opdracht

Deze opdracht is alleen beschikbaar voor op RISC-processors (Reduction Set Computing) gebaseerde platforms. Op deze platforms kan de CPU het geheugen corrigeren voor lezen of schrijven die zich niet uitlijnen. Dit is voorbeelduitvoer:

Alignment data for:

4500 Software (C4500-DS40-M), Version mis-aligned RELEASE SOFTWARE (fc1)

Compiled Tue 31-Mar-98 15:05 by jdoe

Total Corrections 33911, Recorded 2, Reads 33911, Writes 0

Initial Initial

Address Count Access Type Traceback

40025F4D 15561 16bit read 0x606F4A7C 0x601C78F8 0x6012FE94 0x600102C0

40025F72 18350 32bit read 0x606FB260 0x6013113C 0x600102C0 0x60010988

Het  show version  Opdracht

Om problemen met een hoog CPU-gebruik te kunnen volgen, is de belangrijke informatie die uit de opdrachtoutput moet worden gehaald de Cisco IOS-softwareversie, het platform, het CPU-type en de uptime van de router. De opdrachtreferentie geeft een gedetailleerde uitleg van deze opdracht.

Het  show log  Opdracht

Deze opdracht toont de inhoud van gebufferde logberichten.

EEM-scripts voor automatische gegevensverzameling in hoge CPU-omstandigheden

Ingesloten Event Manager kan worden gebruikt om automatisch gegevens te verzamelen als er sprake is van een hoge CPU-status.  EEM wordt geactiveerd door de SNMP OID te bewaken voor het procesgebruik of door de syslogberichten te bewaken voor de uitvoer van de CPU-drempelopdracht. Verschillende showopdrachten kunnen via het EEM-script worden uitgevoerd en de uitvoer kan naar het bestandssysteem worden opgeslagen.

Voorbeeld van een EM-script met de SNMP-id

Dit script wordt uitgevoerd wanneer het procesgebruik met ongeveer 85% toeneemt.

Ga voor meer informatie naar Hoe u CPU-gebruik kunt verzamelen op Cisco IOS-apparaten met SNMP.

event manager applet high-cpu

!

event snmp oid 1.3.6.1.4.1.9.9.109.1.1.1.1.3 get-type next entry-op gt entry-val 85 poll-interval 5 exit-time 500 maxrun 600

!

action 0.1 cli command "enable"

action 0.2 syslog msg "TAC - Capturing high cpu information to flash:"

action 0.3 cli command "term length 0"

action 1.1 cli command "show process cpu sorted | redirect flash:eem-cpu1.txt"

action 1.2 cli command "show interface | redirect flash:eem-interface1.txt"

action 1.3 cli command "show interface stats | redirect flash:eem-stat1.txt"

action 1.4 cli command "show ip traffic | redirect flash:eem-traffic1.txt"

action 4.1 syslog msg "TAC - Finished logging information to separate eem files in flash"

action 9.4 cli command "end"

action 9.5 cli command "term default length"

!

!

end

Voorbeeld van een EM-script met de CPU-meldingen van drempelwaarden

Een combinatie van EEM en de CPU drempelkennisgevingen opdracht kan het EEM script activeren. In dit voorbeeld wordt een CPURISHINGTHRESHOLD-syslog-bericht gegenereerd wanneer het gebruik meer dan 85% stijgt gedurende een interval van 5 seconden.  Het EEM-script kan het syslog-bericht activeren en een lijst met opdrachten uitvoeren die in een bestand op het bestandssysteem zijn opgeslagen.

process cpu threshold type total rising 85 interval 5

!

event manager applet high-cpu

event syslog pattern "CPURISINGTHRESHOLD"

action 0.1 syslog msg "EEM: HIGH CPU detected. Writing info to flash:eem-log.txt"

action 0.2 cli command "enable"

action 0.3 cli command "term exec prompt timestamp"

action 0.4 cli command "term len 0"

action 1.1 cli command "show process cpu sorted | append flash:eem-log.txt"

action 1.2 cli command "show proc mem sorted | append flash:eem-log.txt"

action 1.3 cli command "show mem alloc total | append flash:eem-log.txt"

action 2.2 syslog msg "EEM: Self-removing applet from configuration..."

action 2.5 cli command "end"

!

end

Voorbeeld van EEM Script om CPU-profiel te starten/stoppen

EEM wordt gebruikt om CPU-profilering te starten/stoppen en om loggegevens van verschillende showopdrachten te registreren. Zie Hoge CPU-benutting voor probleemoplossing bij onderbrekingen voor meer informatie.

event manager applet High_CPU

event snmp oid 1.3.6.1.4.1.9.9.109.1.1.1.1.4.1 get-type exact entry-op ge 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 version | append flash:CPU_Profile.txt"

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 0.7 cli command "show region | append flash:CPU_Profile.txt"

action 1.2 cli command "profile 4000F000 42C9FFFF 4"

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"

UNIX Shell Script voor periodieke gegevensverzameling

Dit bijlage beschrijft een eenvoudig script dat periodiek gegevens van de router opneemt. De kern van het script is deze lijn:

(echo "show version") | telnet 192.168.1.1

De opdracht tussen haakjes wordt uitgevoerd in subshell en de output wordt verzonden naar een Telnet-sessie. Dit is een voorbeeldscript om de uitvoer van de  show version  en  show processes cpu  opdrachten:

#!/opt/local/bin/bash

###########################################

# Router's IP address

#

IP_ADDRESS='10.200.40.53'

# Directory where the log files can be stored

#

DIR=/var/log/router

########################################

if [ ! -e $DIR ]

then

mkdir $DIR

fi

# Tag specification: mmddhhmm

DATE=`date +'%m%d'`

TIME=`date +'%H%M'`

TAG=$DATE$TIME

# Collect data from the router

(echo "foo";\

echo "bar";\

echo "term len 0";\

echo "show version";\

echo "show processes cpu";\

echo "term len 15";\

echo "show memory summary";\

echo "q";\

sleep 30)|telnet $IP_ADDRESS > $DIR/info.$TAG 2>$DIR/info.$TAG.msg

Opmerking: in dit script worden alle gegevens, inclusief het wachtwoord, verzonden in een duidelijke tekstindeling.

In de eerste sectie moet u het IP-adres en de doelmap voor logbestanden opgeven. De tweede sectie bevat de daadwerkelijke bevelen die naar de router worden verzonden. De eerste is de gebruikersnaam, dan het wachtwoord, enzovoort. om alleen de eerste regels van uitvoer van bepaalde opdrachten op te nemen is opgenomen. De terminallengte is ingesteld op iets korter (in dit geval 15) en het teken "q" wordt alleen via de prompt verzonden.

Indien gegevens periodiek worden verzameld, wordt de output van  show version  toont aan of het probleem een periodiek karakter heeft, bijvoorbeeld als het altijd op een bepaald tijdstip van de dag of op een bepaalde dag van de week voorkomt. Als u de uitvoer van meer opdrachten moet verzamelen, kunnen deze op dezelfde wijze aan het script worden toegevoegd als in het voorbeeld. Als u de uitvoer naar het bestand moet inkorten, verhoogt u eerst de slaapperiode (de slaapopdracht tussen haakjes).

Voer dit script elke vijf minuten uit als het probleem met het hoge CPU-gebruik vaak verschijnt en niet lang duurt. Anders kunt u deze om de 15 of 30 minuten draaien. Sla het script eenvoudig op in een bestand, zoals /usr/bin/router-script. Sla het script op. Om het om de vijf minuten te draaien, voeg dan de volgende regel toe aan het bestand /etc/crontab:

*/5       *       *       *       *       /usr/bin/router-script

Start de cron server opnieuw. Als u niet de bevoegdheid hebt om het /etc/crontab-bestand te wijzigen, voert u het script in een apart proces uit, zoals dit:

while [ 1 ]; do ./router-script ; sleep 300; done &

Gerelateerde informatie

- Hoog CPU-gebruik op Catalyst 2900XL/3500XL Switches

- Basis voor prestatieafstemming

- Cisco technische ondersteuning en downloads