In dit document worden de Exec- en Virtual Exec-processen uitgelegd en wordt uitgelegd hoe u problemen kunt oplossen met een hoog CPU-gebruik in deze processen.
Cisco raadt u aan Problemen oplossen met hoog CPU-gebruik op Cisco-routers te lezen voordat u verder gaat met dit document.
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, hulpsysteem, asynchroon) van de router. Het Virtual Exec-proces is verantwoordelijk voor de vty-lijnen (telnet-sessies).
De Exec- en Virtual Exec-processen zijn processen met een gemiddelde prioriteit, dus als er andere processen zijn die een hogere prioriteit hebben (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 processen opdracht voor een volledige uitleg van de uitvoer van deze opdracht.
Als er veel gegevens via deze sessies worden overgedragen, neemt het CPU-gebruik voor het Exec-proces toe.
Dit komt omdat wanneer de router een eenvoudig teken via deze lijnen wil verzenden, de router enkele CPU-bronnen gebruikt:
Voor de console (Exec) gebruikt de router één interrupt per teken.
De console-interrupt is te zien in de show stacks command output:
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 vty-regel (Virtual Exec) moet de telnet-sessie een TCP-pakket maken en de tekens naar de telnet-client verzenden.
Hier zijn enkele mogelijke redenen voor een hoog CPU-gebruik in het Exec-proces:
Er worden te veel gegevens verzonden via de consolepoort.
Te veel consoleberichten gegenereerd door de router is een mogelijke oorzaak.
Controleer of er fouten zijn gestart op de router met de opdracht foutopsporing weergeven.
Schakel de consoleaanmelding op de router uit (zonder logboekconsole ).
Controleer of er een lange uitvoer op de console is afgedrukt (bijvoorbeeld een technische ondersteuning weergeven of een geheugen weergeven ).
Er zit een bug in de IOS-software van Cisco.
Gebruik de Bug Toolkit (alleen geregistreerde klanten) om te zoeken naar bugs met dit symptoom in uw Cisco IOS-softwarerelease.
De exec-opdracht is geconfigureerd voor asynchrone en hulplijnen.
Als een lijn alleen uitgaand verkeer heeft, moet het Exec-proces voor deze lijn worden uitgeschakeld, want als het apparaat (bijvoorbeeld een modem) dat aan deze lijn is gekoppeld, ongevraagde gegevens verzendt, begint het Exec-proces op deze lijn.
Als de router wordt gebruikt als terminalserver (voor reverse telnet naar andere apparaatconsoles), wordt aanbevolen dat u geen exec configureert 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, dat CPU-bronnen gebruikt.
Hier zijn enkele mogelijke redenen 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.
Er worden te veel gegevens over de telnet-sessies verzonden.
De meest voorkomende reden voor een hoog CPU-gebruik in het Virtual Exec-proces is dat te veel gegevens worden overgedragen van de router naar de telnet-sessie.
Dit kan gebeuren wanneer opdrachten met lange uitgangen (zoals show tech-support, show memory, enzovoort) worden uitgevoerd vanuit de telnet-sessie.
De hoeveelheid gegevens die via elke vty-sessie wordt overgedragen, kan worden geverifieerd met de opdracht show tcp:
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 opgehangen telnet sessie leidt tot een hoge CPU als gevolg van de Virtual Exec proces. Om de opgehangen telnet-sessie te wissen, moet het apparaat in de meeste gevallen opnieuw worden geladen. De andere manier om de opgehangen telnet-sessie te wissen, is door het TCP-proces te wissen. Het TCP-proces kan worden geïdentificeerd met de opdracht show tcp brief zoals in deze uitvoer:
Router#show tcp brief TCB Local Address Foreign Address (state) 02FA62D0 172.16.152.75.23 dhcp-171-69-104-.3013 ESTAB
Van de bovenstaande uitvoer moet het TCP-proces 02FA62D0 worden gewist om de opgehangen telnet-sessie te wissen met de opdracht tcp tcb 0x02fa62d0 wissen.
| Revisie | Publicatiedatum | Opmerkingen |
|---|---|---|
1.0 |
11-Mar-2003
|
Eerste vrijgave |