이 문서에서는 Exec 및 Virtual Exec 프로세스 및 이러한 프로세스에서 높은 CPU 사용률을 해결하는 방법에 대해 설명합니다.
이 문서를 진행하기 전에 Cisco 라우터에서 Troubleshooting High CPU Utilization(CPU 사용률 높은 문제 해결)을 읽어 보시기 바랍니다.
이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 라이브 네트워크에서 작업하는 경우, 사용하기 전에 모든 명령의 잠재적인 영향을 이해해야 합니다.
문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참조하십시오.
Cisco IOS® 소프트웨어의 Exec 프로세스는 라우터의 tty 회선(콘솔, 보조, 비동기)에서 통신을 담당합니다. Virtual Exec 프로세스는 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 소프트웨어에 버그가 있습니다.
Bug Toolkit(등록된 고객만 해당)을 사용하여 Cisco IOS 소프트웨어 릴리스에서 이 증상을 가진 버그를 찾습니다.
exec 명령은 비동기 및 보조 회선에 대해 구성됩니다.
회선에 발신 트래픽만 있는 경우 이 회선에 연결된 디바이스(예: 모뎀)가 일부 요청되지 않은 데이터를 전송하는 경우 실행 프로세스가 이 회선에서 시작되므로 이 회선에 대해 실행 프로세스를 비활성화해야 합니다.
라우터가 터미널 서버로 사용되는 경우(다른 장치 콘솔과의 역방향 텔넷의 경우) 다른 장치 콘솔의 콘솔에 연결된 회선에 no exec을 구성하는 것이 좋습니다. 콘솔에서 다시 들어오는 데이터는 CPU 리소스를 사용하는 EXEC 프로세스를 시작할 수 있습니다.
다음은 Virtual Exec 프로세스에서 CPU 사용률이 높은 몇 가지 가능한 이유입니다.
Cisco IOS 소프트웨어의 소프트웨어 버그
Bug Toolkit(등록된 고객만 해당)을 사용하여 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 |
최초 릴리스 |