Dit document verklaart de processen van Exec en Virtual Exec, en hoe u problemen kunt oplossen met een hoog CPU-gebruik in deze processen.
Cisco raadt u aan het hoge CPU-gebruik voor probleemoplossing te lezen op Cisco-routers voordat u met dit document verdergaat.
Dit document is niet beperkt tot specifieke software- en hardware-versies.
De informatie in dit document is gebaseerd op apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als u in een live netwerk werkt, zorg er dan voor dat u de potentiële impact van iedere opdracht begrijpt voor u deze gebruikt.
Raadpleeg Cisco Technical Tips Conventions (Conventies voor technische tips van Cisco) voor meer informatie over documentconventies.
Het Exec-proces in Cisco IOS®-software is verantwoordelijk voor de communicatie op de tty-lijnen (console, auxiliaire, asynchrone) van de router. Het Virtual Exec-proces is verantwoordelijk voor de vty lines (telnet-sessies).
De Exec- en Virtual Exec-processen zijn processen met een gemiddelde prioriteit. Als er andere processen zijn met een hogere prioriteit (hoog of kritisch), krijgen de processen met een hogere prioriteit de CPU-bronnen.
router#show process | i CPU|Exec CPU utilization for five seconds: 0%/0%; one minute: 0%; five minutes: 0% PID QTy PC Runtime (ms) Invoked uSecs Stacks TTY Process 22 M* 0 9644 1733 5564 9732/12000 0 Exec 46 ME 80468980 28 6 466610520/12000 66 Virtual Exec
Zie De show verwerkt Opdracht voor een volledige uitleg van de uitvoer van deze opdracht.
Als er veel gegevens worden overgebracht door deze sessies, neemt het CPU-gebruik voor het Exec-proces toe.
Dit is omdat wanneer de router een eenvoudig karakter door deze lijnen wil verzenden, de router sommige middelen van cpu gebruikt:
Voor de console (Exec), gebruikt de router één onderbreking per teken.
De console onderbreking kan in de show stacks worden gezien opdrachtoutput:
router#show stacks Minimum process stacks: Free/Size Name 11516/12000 Router Init 9404/12000 Init 5520/6000 AIM_MIB_CREATION 5448/6000 RADIUS INITCONFIG 9728/12000 Virtual Exec Interrupt level stacks: Level Called Unused/Size Name 1 23035463 7008/9000 Network interfaces 2 0 9000/9000 Timebase Reference Interrupt 3 0 9000/9000 PA Management Int Handler 6 9791 8892/9000 16552 Con/Aux Interrupt 7 1334963882 8920/9000 MPC860 TIMER INTERRUPT
Voor de videolijn (Virtual Exec) moet de telnet-sessie een TCP-pakket maken en de tekens naar de telnet-client verzenden.
Hier worden enkele mogelijke redenen genoemd voor een hoog CPU-gebruik in het Exec-proces:
Teveel gegevens worden via de consolepoort verzonden.
Teveel consoleberichten die door de router worden geproduceerd is een mogelijke oorzaak.
Controleer of er debugs zijn gestart op de router met de show debugging opdracht.
Schakel de logboekregistratie van de console op de router uit met (geen logboekconsole ).
Controleer of een lange uitvoer op de console is afgedrukt (bijvoorbeeld een show tech-support of een show geheugen ).
Er is een bug in de Cisco IOS-software.
Gebruik de Bug Toolkit (alleen geregistreerde klanten) om te zoeken naar bugs met dit symptoom in uw Cisco IOS-softwarerelease.
Het exec-commando is geconfigureerd voor asynchrone en aanvullende lijnen.
Als een lijn alleen uitgaand verkeer heeft, moet het Exec-proces voor deze lijn worden uitgeschakeld, omdat als het apparaat (bijvoorbeeld een modem) dat op deze lijn is aangesloten ongevraagde gegevens verstuurt, het Exec-proces op deze lijn wordt gestart.
Als de router wordt gebruikt als terminalserver (voor omgekeerd telnet naar andere apparaatconsoles), wordt aanbevolen om geen exec te configureren op de lijnen die zijn aangesloten op de console van de andere apparaten. Gegevens die terugkomen van de console kunnen anders een EXEC-proces starten, waarbij CPU-bronnen worden gebruikt.
Hier worden enkele mogelijke redenen genoemd voor het hoge CPU-gebruik in het Virtual Exec-proces:
Een softwarebug in de Cisco IOS-software
Gebruik de Bug Toolkit (alleen geregistreerde klanten) om te zoeken naar bugs met dit symptoom voor uw Cisco IOS-softwarerelease.
Teveel gegevens worden over de telnet-sessies verzonden.
De meest voorkomende reden voor een hoog CPU-gebruik in het Virtual Exec-proces is dat er te veel gegevens worden overgebracht van de router naar de Telnet-sessie.
Dit kan gebeuren wanneer opdrachten met lange uitgangen (zoals show tech-support, show memory, enzovoort) worden uitgevoerd vanaf de telnet-sessie.
De hoeveelheid gegevens die door elke vty zitting worden overgebracht kan met het show tcp bevel worden geverifieerd:
router#show tcp vty 0
tty66, virtual tty from host 10.48.77.64
Connection state is ESTAB, I/O status: 1, unread input bytes: 1
Local host: 10.48.77.27, Local port: 23
Foreign host: 10.48.77.64, Foreign port: 11006
........
Datagrams (max data segment is 1460 bytes):
Rcvd: 525 (out of order: 0), with data: 53, total data bytes: 87
Sent: 366 (retransmit: 257, fastretransmit: 0), with data: 356, total data bytes:
158187
Een hangende Telnet-sessie leidt tot een hoge CPU vanwege het Virtual Exec-proces. Om de hung telnet sessie te wissen, moet het apparaat in de meeste gevallen opnieuw geladen worden. De andere manier om de hung telnet sessie te wissen is het TCP proces te wissen. Het TCP-proces kan worden geïdentificeerd met de opdracht show tcp korte zoals in deze output:
Router#show tcp brief TCB Local Address Foreign Address (state) 02FA62D0 172.16.152.75.23 dhcp-171-69-104-.3013 ESTAB
Van de bovengenoemde output, moet TCP proces 02FA62D0 worden ontruimd om de hung telnet zitting met het bevel duidelijke tcp tcb 0x02fa62d0 te ontruimen.
Revisie | Publicatiedatum | Opmerkingen |
---|---|---|
1.0 |
12-Dec-2008 |
Eerste vrijgave |