De documentatie van dit product is waar mogelijk geschreven met inclusief taalgebruik. Inclusief taalgebruik wordt in deze documentatie gedefinieerd als taal die geen discriminatie op basis van leeftijd, handicap, gender, etniciteit, seksuele oriëntatie, sociaaleconomische status of combinaties hiervan weerspiegelt. In deze documentatie kunnen uitzonderingen voorkomen vanwege bewoordingen die in de gebruikersinterfaces van de productsoftware zijn gecodeerd, die op het taalgebruik in de RFP-documentatie zijn gebaseerd of die worden gebruikt in een product van een externe partij waarnaar wordt verwezen. Lees meer over hoe Cisco gebruikmaakt van inclusief taalgebruik.
Cisco heeft dit document vertaald via een combinatie van machine- en menselijke technologie om onze gebruikers wereldwijd ondersteuningscontent te bieden in hun eigen taal. Houd er rekening mee dat zelfs de beste machinevertaling niet net zo nauwkeurig is als die van een professionele vertaler. Cisco Systems, Inc. is niet aansprakelijk voor de nauwkeurigheid van deze vertalingen en raadt aan altijd het oorspronkelijke Engelstalige document (link) te raadplegen.
Dit document beschrijft algemene symptomen en oorzaken van een hoog CPU-gebruik op Cisco-routers en biedt richtlijnen en oplossingen voor gebruikelijke problemen.
Cisco raadt kennis van de volgende onderwerpen aan:
Zie Basics voor prestatiebewaking voor meer informatie over Cisco IOS-softwarereleases.
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.
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
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:
Zorg ervoor dat alle debug
opdrachten in uw router zijn uitgeschakeld met undebug all
de opdracht of no debug all
.
Bent u in staat om show
opdrachten op de router uit te geven? Als ja, begin onmiddellijk meer informatie te verzamelen, met deze show
opdrachten.
Is de router ontoegankelijk? Kun je dit probleem reproduceren? Als ja, macht-cyclus de router en, alvorens u het probleem reproduceert, vorm het scheduler interval 500
bevel. 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 de scheduler allocate 3000 1000
opdracht op Cisco 7200 en Cisco 7500 Series routers.
Toont de router symptomen van hoog CPU-gebruik met korte en onvoorspelbare intervallen? Als ja, verzamel periodiek de output van het 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.
Gebruik de cpu van showprocessen om te controleren of het cpu-gebruik hoog is door onderbrekingen of processen.
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.
Als NetFlow is geconfigureerd voor versie 7, wordt de flow uitgevoerd door de Routing Processor, die een hoog CPU-gebruik kan veroorzaken.
Als u problemen wilt oplossen bij het hoge CPU-gebruik door NetFlow versie 7, configureert u mls nde-afzender versie 5, aangezien de NetFlow-export wordt uitgevoerd door de SP, die de standaard is voor versie 5 of versie 9.
Controleer welk proces de CPU laadt. Ongebruikelijke activiteit met betrekking tot een proces resulteert in een foutmelding in het logbestand. Daarom moet de uitvoer van het show logging exec
commando eerst worden gecontroleerd op fouten die betrekking hebben op het proces dat veel CPU-cycli gebruikt.
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
opdracht. Om te zien welke logboekbestemmingen en bijbehorende niveaus zijn ingeschakeld, leest u de kopregels van de show logging exec
opdracht.
De omvang van de logbuffers moet worden vergroot om voldoende informatie te kunnen verzamelen. Raadpleeg voor meer informatie de beschrijving van de logging buffer global configuration
opdracht.
Om debugs beter te kunnen lezen en begrijpen, moeten de datumtijd en milliseconden tijdstempels zijn ingeschakeld. Raadpleeg voor meer informatie de beschrijving van de opdracht service timestamps global configuration
.
Een voorbeeld-debugging sessie van IP-pakketten wordt geleverd in Probleemoplossing Hoog CPU-gebruik als gevolg van 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 eenshow tech
opname maakt of een debug is ingeschakeld.
Andere processen—Andere processen in het document, Problemen oplossen en Hoog CPU-gebruik dankzij de Processen.
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.
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.
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.
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.
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. show log
Vervolgens verzamelt u periodiek de uitvoer van de opdrachten in deze sectie, met uitzondering van de opdracht, waarvan de berichten op een syslogserver moeten worden aangemeld. 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.
show processes cpu
opdrachtDit is een voorbeeld van de header van het show processes cpu
commando.
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 seconden1 |
Z |
Gemiddelde totale benutting gedurende last minute2 |
B |
Gemiddelde totale benutting gedurende de laatste vijf minuten2 |
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 minuut2 |
5 min. |
CPU-gebruik per taak in de afgelopen vijf minuten2 |
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.
Raadpleeg voor meer informatie de Naslaghandleiding 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.
show interfaces
opdrachtDeze opdracht wordt gebruikt om actieve interfaces te bepalen.
show interfaces switching
opdrachtDeze opdracht wordt gebruikt om actieve switchingpaden op interfaces te bepalen.
Dit is een voorbeelduitvoer van de opdracht show interfaces switching
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). |
show interfaces stat
opdrachtDit bevel is een samengevatte versie van het show interfaces switching
bevel. 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.
show ip nat translations
opdrachtHet show ip nat translations
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 opdracht show ip nat translations
:
router#show ip nat translations Pro Inside global Inside local Outside local Outside global --- 172.16.131.1 10.10.10.1 --- ---
show align
opdrachtDeze 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
show version
opdrachtOm 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.
show log
opdrachtDeze opdracht toont de inhoud van gebufferde logberichten.
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.
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
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
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"
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 op te nemen:
#!/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.
Als de gegevens periodiek worden verzameld, toont de output van show version
of het probleem een periodieke aard heeft, bijvoorbeeld, als het altijd op een bepaald tijdstip van de dag of op een bepaalde dag van de week verschijnt. 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 het om de 15 of 30 minuten draaien. Sla het script eenvoudig op in een bestand, zoals /usr/bin/router-script. Sla dit op. Om het elke vijf minuten uit te voeren, voegt u de volgende regel toe aan het /etc/crontab-bestand:
*/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 afzonderlijk proces, zoals dit:
while [ 1 ]; do ./router-script ; sleep 300; done &
Revisie | Publicatiedatum | Opmerkingen |
---|---|---|
2.0 |
30-Nov-2022 |
Bijgewerkte opmaak. Opnieuw gecertificeerd. |
1.0 |
14-Dec-2001 |
Eerste vrijgave |