이 문서에서는 Exec 및 Virtual Exec 프로세스와 이러한 프로세스에서 높은 CPU 사용률을 트러블슈팅하는 방법에 대해 설명합니다.
이 문서를 진행하기 전에 Troubleshooting High CPU Utilization on Cisco Routers(Cisco 라우터의 높은 CPU 사용률 문제 해결)를 읽어보는 것이 좋습니다.
이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 라이브 네트워크에서 작업 중인 경우, 사용하기 전에 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참조하십시오.
Cisco IOS® 소프트웨어의 Exec 프로세스는 라우터의 tty 라인(콘솔, 보조, 비동기)에서의 통신을 담당합니다. 가상 실행 프로세스는 vty 라인(텔넷 세션)을 담당합니다.
Exec 및 Virtual Exec 프로세스는 중간 우선순위 프로세스이므로, 우선순위가 더 높은(높음 또는 중요) 다른 프로세스가 있는 경우 우선순위가 더 높은 프로세스가 CPU 리소스를 가져옵니다.
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
이 명령의 출력에 대한 전체 설명은 show processes 명령을 참조하십시오.
이러한 세션을 통해 전송된 데이터가 많을 경우 Exec 프로세스에 대한 CPU 사용률이 증가합니다.
이는 라우터가 이러한 행을 통해 간단한 문자를 전송하려는 경우 라우터가 일부 CPU 리소스를 사용하기 때문입니다.
콘솔(Exec)의 경우 라우터는 문자당 하나의 인터럽트를 사용합니다.
콘솔 인터럽트는 show stacks 명령 출력에서 볼 수 있습니다.
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
vty 라인(Virtual Exec)의 경우 텔넷 세션은 TCP 패킷을 구축하고 텔넷 클라이언트로 문자를 보내야 합니다.
다음은 Exec 프로세스에서 CPU 사용률이 높은 몇 가지 가능한 이유입니다.
콘솔 포트를 통해 너무 많은 데이터가 전송됩니다.
라우터에서 너무 많은 콘솔 메시지를 생성하는 것이 원인일 수 있습니다.
show debugging 명령을 사용하여 라우터에서 디버그가 시작되었는지 확인합니다.
(로깅 콘솔 없음)을 사용하여 라우터에서 콘솔 로깅을 비활성화합니다.
콘솔에 긴 출력이 인쇄되어 있는지 확인합니다(예: show tech-support 또는 show memory).
Cisco IOS 소프트웨어에 버그가 있습니다.
버그 툴킷(등록된 고객만 해당)을 사용하여 Cisco IOS 소프트웨어 릴리스에서 이 증상이 있는 버그를 찾아보십시오.
exec 명령은 비동기식 및 보조 회선에 대해 구성됩니다.
회선에 발신 트래픽만 있는 경우 이 회선에 연결된 장치(예: 모뎀)가 일부 원하지 않는 데이터를 전송하면 Exec 프로세스가 이 회선에서 시작되므로 이 회선에 대해 Exec 프로세스를 비활성화해야 합니다.
라우터를 터미널 서버로 사용하는 경우(다른 장치 콘솔에 대한 텔넷을 역으로 사용하는 경우) 다른 장치의 콘솔에 연결된 회선에서 no exec를 구성하는 것이 좋습니다. 콘솔에서 가져온 데이터는 그렇지 않으면 CPU 리소스를 사용하는 EXEC 프로세스를 시작할 수 있습니다.
다음은 Virtual Exec 프로세스에서 CPU 사용률이 높은 몇 가지 가능한 이유입니다.
Cisco IOS 소프트웨어의 소프트웨어 버그
버그 툴킷(등록된 고객만 해당)을 사용하여 Cisco IOS 소프트웨어 릴리스에서 이 증상을 보이는 버그를 찾아보십시오.
텔넷 세션을 통해 너무 많은 데이터가 전송됩니다.
Virtual Exec 프로세스에서 CPU 사용률이 높은 가장 일반적인 이유는 너무 많은 데이터가 라우터에서 텔넷 세션으로 전송되기 때문입니다.
텔넷 세션에서 show tech-support, show memory 등과 같이 출력이 긴 명령이 실행되는 경우 이 오류가 발생할 수 있습니다.
각 vty 세션을 통해 전송되는 데이터의 양은 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
중단된 텔넷 세션은 Virtual Exec 프로세스로 인해 높은 CPU로 이어집니다. 중단된 텔넷 세션을 지우려면 대부분의 경우 디바이스를 다시 로드해야 합니다. 중단된 텔넷 세션을 지우는 다른 방법은 TCP 프로세스를 지우는 것입니다. TCP 프로세스는 다음 출력에서와 같이 show tcp brief 명령으로 식별할 수 있습니다.
Router#show tcp brief TCB Local Address Foreign Address (state) 02FA62D0 172.16.152.75.23 dhcp-171-69-104-.3013 ESTAB
위의 출력에서 clear tcp tcb 0x02fa62d0 명령을 사용하여 끊긴 텔넷 세션을 지우려면 TCP 프로세스 02FA62D0을 지워야 합니다.
개정 | 게시 날짜 | 의견 |
---|---|---|
1.0 |
12-Dec-2008 |
최초 릴리스 |