소개
이 문서의 목적은 Cisco IOS® 소프트웨어를 실행하는 디바이스에서 발생할 수 있는 세 가지 오류 유형(잘못된 액세스, 맞춤 오류, 잘못된 인터럽트)에 대해 설명합니다.
Cisco 디바이스에서 show alignment 명령의 출력이 있는 경우 Cisco CLI Analyzer를 사용하여 잠재적인 문제 및 수정 사항을 표시할 수 있습니다.Cisco CLI Analyzer를 사용하려면 등록된 고객으로 로그인한 상태여야 하고 JavaScript가 활성화되어 있어야 합니다.
사전 요구 사항
요구 사항
이 문서에 대한 특정 요건이 없습니다.
사용되는 구성 요소
이 명령은 모든 플랫폼에서 지원되지 않습니다(RISC(Reduced Instruction Set Computing) 프로세서에서만).
12.3(7)T에서 show alignment 명령이 도입되었으며 이전 버전에서 숨겨졌습니다.
표기 규칙
문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참조하십시오.
거짓 액세스
잘못된 액세스는 Cisco IOS 소프트웨어가 제한된 위치에서 메모리에 액세스하려는 시도입니다.잘못된 액세스를 위한 시스템 로그 출력의 예는 다음과 같습니다.
%ALIGN-3-SPURIOUS: Spurious memory access made at 0x60968C44 reading 0x0
%ALIGN-3-TRACE: -Traceback= 60968C44 60269808 602389D8 00000000 00000000 00000000
00000000 00000000
원인
프로세스가 가장 낮은 16KB 메모리 영역에서 읽기를 시도할 때 잘못된 액세스가 발생합니다.이 메모리 부분은 예약되어 있으므로 액세스해서는 안 됩니다.이 메모리 영역에 대한 읽기 작업은 일반적으로 소프트웨어의 함수에 없는 값이 반환될 때 또는 다시 말해 null 포인터가 함수에 전달될 때 발생합니다.
Cisco IOS 소프트웨어 처리
플랫폼에 따라 Cisco IOS 소프트웨어는 잘못된 액세스를 다르게 처리합니다.가능한 플랫폼에서 Cisco IOS 소프트웨어 코드는 0의 값을 반환하고 이벤트를 기록하여 이러한 잘못된 액세스를 처리합니다.플랫폼에서 지원되지 않는 경우 SegV 오류로 인해 라우터가 중단됩니다.잘못된 액세스는 부적절하기 때문에 거짓 액세스는 항상 버그를 가리킵니다.
잘못된 액세스 오류 확인
Cisco IOS 소프트웨어를 통해 거짓 액세스를 계산하고 기록합니다.이 정보는 show alignment 명령과 함께 사용할 수 있습니다.역추적 정보는 잘못된 액세스의 원인과 해결 방법을 결정하는 데 필요합니다.
참고: show alignment 명령은 숨겨지고 문서화되지 않습니다.이 명령은 일부 플랫폼에서도 지원되지 않습니다(RISC(Reduced Instruction Set Computing) 프로세서).show alignment 명령의 샘플 출력은 다음과 같습니다.
Router#show alignment
Alignment data for:
GS Software (RSP-PV-M), Version 11.1(26.1)CC, EARLY DEPLOYMENT MAINTENANCE INTER
IM SOFTWARE
Compiled Thu 27-May-99 20:48 by jjgreen
No alignment data has been recorded.
Total Spurious Accesses 167110746, Recorded 2
Address Count Traceback
0 10474 0x6012D488 0x6020FFB4 0x601D5CE0
0 49008 0x6012D488 0x6020D25C 0x6020E744 0x602106B4
Router#
잘못된 액세스 오류 수정
잘못된 액세스 오류는 항상 Cisco IOS 소프트웨어 버그로 인해 발생합니다.이 문제를 해결하려면 릴리스 트레인의 최신 버전으로 업그레이드하십시오(예: Cisco IOS Software 릴리스 11.2(14)를 실행 중인 경우 최신 11.2(x) 이미지로 업그레이드하십시오.문제가 해결되지 않거나 라우터를 업그레이드할 수 없는 경우 Cisco TAC에 문의하십시오.잘못된 액세스를 보고하기 위해 케이스를 열 때 다음을 포함하십시오.
-
show alignment 명령의 출력
-
show tech-support 명령의 출력
-
관련 시스템 로그
정렬 오류
다음은 정렬 오류에 대한 시스템 로그 출력의 예입니다.
%ALIGN-3-CORRECT: Alignment correction made at 0x60262478 reading/writing 0x60A9FF5C
원인
정렬 오류는 잘못된 읽기 및 쓰기로 인해 발생합니다.예를 들어, 메모리 주소가 2바이트의 짝수 배수가 아닌 2바이트 읽기는 정렬 오류입니다.정렬 오류는 소프트웨어 버그로 인해 발생합니다.
정렬 오류 확인
정렬 오류는 로그에 보고되고 라우터가 기록합니다.show alignment 명령의 출력은 이러한 오류에 대한 레코드와 잠재적으로 유용한 역추적 기능을 제공합니다.정렬 오류에 대한 추적기를 디코딩하여 정렬 문제를 일으키는 기능을 표시할 수 있습니다.
참고: show alignment 명령은 숨겨지고 문서화되지 않습니다.이 명령은 일부 플랫폼에서도 지원되지 않습니다(하이엔드 라우터만 지원).show alignment 명령의 샘플 출력은 다음과 같습니다.
Router#show alignment
Alignment data for:
RSP Software (RSP-ISV-M), Version 11.3(3a), RELEASE SOFTWARE (fc1)
Compiled Fri 01-May-98 18:28 by phanguye
Total Corrections 6, Recorded 2, Reads 6, Writes 0
Initial Initial
Address Count Access Type Traceback
60EF3765 3 32bit read 0x60262474 0x601AC594 0x601AC580
60EF3761 3 32bit read 0x60262478 0x601AC594 0x601AC580
No spurious memory references have been recorded.
Router#
정렬 오류 수정
정렬 오류는 일반적으로 소프트웨어에 의해 수정될 수 있으며, 이러한 경우 충돌이 발생하지 않습니다.그러나 정렬 오류를 수정해도 프로세서 리소스가 소모되므로 성능이 저하될 수 있습니다.지속적인 정렬 오류가 있는 경우 라우터는 대부분의 시간을 문제를 해결하는 데 소비하여 CPU 사용률을 높일 수 있습니다.이러한 오류는 중단 시 수정됩니다.
스퍼리어스 인터럽트
잘못된 인터럽트는 잘못된 메모리 액세스와 다릅니다.
내부 경합 상태 또는 인터럽트 처리 루틴의 부적절한 초기화 때문에 이미 처리된 패킷에 대해 불필요한 인터럽트가 발생할 경우 스퍼링 인터럽트가 발생합니다.인터럽트가 잘못되어 라우터의 동작에 뚜렷한 영향이 없습니다.일부 삭제된 패킷 또는 성능이 저하된 것과 함께 점증적인 인터럽트 수가 높거나 증가하지 않는 한 이러한 인터럽트는 무시해도 안전합니다.그렇지 않으면 근본 원인을 조사해야 합니다.
show align 명령은 잘못된 메모리 액세스에 대한 정보를 제공하지만 잘못된 인터럽트에 대해서는 제공하지 않습니다.시스템에서 가져올 수 있는 스프라이어스 인터럽트에 대한 유일한 정보는 show stacks 출력입니다. 여기서 발생한 횟수를 계산하는 카운터가 있습니다.
Router#show stacks
Minimum process stacks:
Free/Size Name
3692/4000 DHCPD Receive
4796/6000 Router Init
1904/4000 Init
3408/4000 RADIUS INITCONFIG
4228/5000 DHCP Client
2468/4000 Exec
Interrupt level stacks:
Level Called Unused/Size Name
3 0 3000/3000 Serial interface state change interrupt
4 54351439 1760/3000 Network interfaces
5 64181 2872/3000 Console Uart
Spurious interrupts: 29
잘못된 인터럽트는 결함이 있는 하드웨어 또는 소프트웨어로 인해 발생할 수 있습니다.대부분의 경우 이는 라우터나 스위치의 예상 동작에 영향을 미치지 않습니다.이는 모니터링 목적으로만 계산됩니다.
인터럽트를 여러 번 중단해도 CPU 사용률이 크게 향상되지 않습니다.라우터나 스위치에서 발생하는 유일한 증상이고 다른 모든 것이 예상대로 작동하고 있는 경우(패킷 삭제 없음 등), 잘못된 인터럽트는 무시될 수 있습니다.
68k 프로세서(즉, Cisco 1000, 1600, 2500, 4000 및 RP)를 기반으로 하는 Cisco 라우터는 특정 스퍼링 인터럽트의 임계값에 도달하면 코어덤프를 생성하도록 구성할 수 있습니다.
Router(config)#exception ?
core-file Set name of core dump file
crashinfo Crashinfo collection
dump Set name of host to dump to
flash Set the device and erase permission
memory Memory leak debugging
protocol Set protocol for sending core file
region-size Size of region for exception-time memory pool
spurious-interrupt Crash after a given number of spurious interrupts
Router(config)#exception spurious-interrupt ?
<1-4294967295> Spurious interrupt threshold
코어덤프 생성에 대한 자세한 내용은 코어 덤프 생성을 참조하십시오.이 정보는 Technical Assistant Center에서 잘못된 인터럽트로 인해 성능이 저하될 경우 요청할 수 있습니다.그러한 경우 일부 패킷이 삭제되거나 성능이 저하되는 것과 함께 스퍼링 인터럽트의 수가 증가하고 있어야 합니다.
TAC 서비스 요청을 생성하는 경우 수집할 정보
위의 트러블슈팅 단계를 거친 후에도 지원이 필요한 경우 Cisco TAC에 서비스 요청(등록된 고객만 해당)을 생성하려는 경우, 잘못된 액세스, 정렬 오류 및 잘못된 인터럽트 문제 해결을 위해 다음 정보를 케이스에 첨부해야 합니다. |
- 서비스 요청을 생성하기 전에 수행된 트러블슈팅
- show technical-support 출력(가능한 경우 활성화 모드)
- show alignment 출력(show technical-support 출력에 아직 포함되지 않은 경우)
- 로그 출력 또는 콘솔 캡처 표시(사용 가능한 경우)
수집된 데이터를 압축되지 않은 일반 텍스트 형식(.txt)으로 서비스 요청에 첨부하십시오. TAC Service Request Tool을 사용하여 업로드하여 서비스 요청에 정보를 첨부할 수 있습니다(등록된 고객만 해당). Service Request Tool에 액세스할 수 없는 경우 메시지 제목 줄에 있는 서비스 요청 번호를 사용하여 attach@cisco.com으로 해당 정보를 전송하여 서비스 요청에 관련 정보를 첨부할 수 있습니다. 참고: 잘못된 액세스, 정렬 오류 및 잘못된 인터럽트를 트러블슈팅하는 데 필요하지 않은 경우 문제의 근본 원인을 파악하는 데 필요한 중요한 정보가 손실될 수 있으므로 위의 정보를 수집하기 전에 라우터를 수동으로 다시 로드하거나 전원을 껐다가 다시 켜지 마십시오. |
관련 정보