이 문서에서는 Cisco IOS® 소프트웨어에서 코어 덤프를 활성화하는 데 사용할 수 있는 다양한 옵션에 대해 설명합니다.
참고: 핵심 덤프는 구하기가 어려울 수 있습니다. 소스 코드 및 세부 메모리 맵에 대한 액세스 권한이 있는 Cisco 기술 담당자만 핵심 덤프 해석을 시도해야 합니다. 많은 플랫폼에서 crashinfo 기능을 사용하면 코어 덤프가 불필요할 수 있습니다. 자세한 내용은 Crashinfo 파일에서 정보 검색을 참조하십시오.
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
Cisco IOS Software 버전 12.0 이상
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우, 모든 명령어의 잠재적인 영향을 미리 숙지하시기 바랍니다.
문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참고하십시오.
라우터가 충돌할 때 라우터의 전체 메모리 내용의 복사본을 가져와야 합니다. 이를 코어 덤프라고 합니다. 기술 지원 담당자는 코어 덤프를 사용하여 충돌의 원인을 식별합니다. 라우터는 다시 로드하기 전에 메모리 내용을 서버에 기록합니다. 모든 충돌로 인해 코어 덤프가 생성되는 것은 아닙니다. 자세한 내용은 Types of Crash(충돌 유형)를 참조하십시오.
라우터가 코어 덤프를 시도할 때 항상 콘솔 로그를 캡처합니다. 콘솔 로그는 충돌에 대한 정보를 제공합니다. 또한 ROMMON(ROM 모니터)은 일반적으로 충돌 시 정보를 콘솔에(그리고 콘솔에만) 인쇄합니다.
주의: 코어 덤프는 대부분의 충돌 사례를 해결하는 데 필요하지 않습니다. 라우터가 네트워크에서 작동하는 동안 코어 덤프를 생성하면 네트워크 작업이 중단될 수 있습니다. 이 문서의 명령은 기술 지원 담당자의 지시에만 사용하십시오.
코어 덤프를 생성하기 위해 라우터를 설정하는 4가지 기본 방법이 있습니다.
FTP(Through File Transfer Protocol)
RCP(Remote Copy Protocol) 사용
플래시 디스크를 통해
TFTP(Trivial File Transfer Protocol)를 통해
이러한 각 방법에서는 다음 컨피그레이션 명령을 사용합니다.
예외 영역 크기 크기
이 명령은 예외 시간 메모리 풀에 대한 영역의 크기를 지정합니다. 프로세스 메모리가 손상된 경우 예외 시간 메모리 풀이 사용됩니다. size 매개변수는 바이트로 표시되며, 1024~65536바이트 범위에서 크기를 구성할 수 있습니다.
예외 core-file filename [compress]
이 명령은 기본 이름이 아닌 코어 덤프 파일의 이름을 지정합니다. 기본 이름으로 되돌리려면 이 명령의 no 형식을 사용합니다.
이 문서의 명령에 대한 자세한 내용은 명령 참조 도구(등록된 고객만 해당)를 참조하십시오.
프로세서 메모리 풀이 손상된 경우 폴백 풀로 사용할 소량의 메모리를 정의하려면 exception region-size 명령을 사용합니다. 이렇게 하면 코어 덤프 프로세스 중에 메모리 오류가 발생하는 것을 방지할 수 있습니다. size 매개변수는 바이트로 표시되며, 기본값을 16384바이트로 하여 1024바이트에서 65536바이트까지 크기를 구성할 수 있습니다. 예외 영역 크기를 65536 바이트로 구성하여 코어 덤프가 성공할 가능성을 높입니다.
기본적으로 프로세서 메모리 코어 덤프는 "hostname-core"라는 파일에 기록됩니다. 여기서 hostname은 라우터의 이름이며, hostname 컨피그레이션 명령에서 정의합니다. 라우터에 I/O(Input/Output) 메모리(예: Cisco 7200)가 있는 경우 I/O 메모리 코어 덤프를 생성하여 "hostname-coreiomem" 파일에 기록할 수도 있습니다.
기본 코어 덤프 파일 이름을 재정의하려면 exception core-file 명령을 사용합니다. 파일 서버에 DOS FAT 파일 시스템이 있는 경우 6자 이상의 파일 이름을 지정하지 마십시오. 예를 들어, 라우터를 "예외 core-file foobar"로 구성한 경우 코어 덤프의 프로세서 메모리 이름은 "foobar"이고 I/O 메모리 덤프의 이름은 "foobario"입니다(I/O 메모리 덤프가 있다는 힌트를 줄 수 있음).
파일 서버에 여러 개의 완전한 코어 덤프를 저장할 수 있는 충분한 디스크 공간이 있는지 확인하십시오. compress 옵션을 사용하여 코어 덤프 파일을 압축할 수 있습니다.
참고: 압축은 코어 덤프 파일을 플래시 디스크에 쓸 때 자동으로 적용됩니다. RCP를 사용하는 경우 compress 옵션은 지원되지 않습니다.
참고: FTP(File Transfer Protocol)는 코어 덤프를 구성하는 데 권장되는 방법입니다.
FTP를 사용하여 코어 덤프를 위한 라우터를 구성하려면 다음 명령을 사용합니다.
ip ftp username username - 이 명령은 FTP(파일 전송 프로토콜) 연결을 위한 사용자 이름을 구성합니다. 익명 FTP를 시도하도록 라우터를 구성하려면 이 명령의 no 형식을 사용합니다.
ip ftp password password - 이 명령은 FTP 연결을 위한 비밀번호를 구성합니다.
exception protocol ftp - 이 명령은 코어 덤프 FTP에 사용되는 프로토콜을 구성합니다.
exception region-size 65536 - 이 명령은 영역 크기를 구성합니다.
exception dump ip-address - 이 명령은 충돌 시 라우터가 코어 덤프를 전송하는 서버의 ip 주소를 구성합니다.
참고: 네트워크 혼잡을 피하기 위해 중간 홉 없이 라우터를 FTP 서버에 직접 연결하는 것이 좋습니다. 하나 이상의 중간 홉을 거쳐야 하는 경우 ip ftp source-interface 명령을 사용하여 FTP 서버에 액세스하기 위해 사용할 인터페이스를 지정해야 할 수 있습니다. 자세한 내용은 FTP 연결을 사용하도록 라우터 구성을 참조하십시오.
사용자 이름과 비밀번호를 구성하지 않은 경우 라우터는 익명 FTP를 시도합니다.
Cisco 기술 지원 담당자가 코어 덤프 파일을 요청할 경우 익명 FTP를 통해 코어 덤프 파일을 Cisco에 전송할 수 있습니다. FTP 서버는 ftp-sj.cisco.com이고 디렉토리는 /incoming입니다.
참고: /Incoming 디렉터리는 표시되지 않습니다.
전송 모드를 이진으로 설정해야 합니다. 파일이 아직 압축되지 않은 경우 gzip 또는 zip과 같은 일반적인 압축 유틸리티를 사용하여 압축합니다.
또한 crashinfo 파일(사용 가능한 경우)을 코어 덤프와 함께 포함해야 합니다. 하드웨어 또는 소프트웨어에서 이 기능을 지원하는 경우 crashinfo 파일을 사용할 수 있습니다. 이 작업을 수행하는 방법에 대한 지침은 Crashinfo 파일에서 정보 검색을 참조하십시오.
FTP가 먼저 작동하는지 확인합니다. 다음 예를 사용하십시오.
c7500#copy running-config ftp: Address or name of remote host []? 172.18.125.3 Destination filename [c7500-confg]? Writing c7500-confg ! 2781 bytes copied in 0.944 secs
RCP를 사용하여 코어 덤프에 대한 라우터를 구성하려면 다음 명령을 사용합니다.
ip rcmd remote-username username -이 명령은 RCP(remote copy protocol)를 통해 원격 복사를 요청할 때 사용할 원격 사용자 이름을 구성합니다.
exception protocol rcp - 이 명령은 코어 덤프에 사용되는 프로토콜을 RCP로 구성합니다.
exception region-size 65536 - 이 명령은 영역 크기를 구성합니다.
예외 덤프 ip 주소
사용자 이름을 구성하지 않은 경우 라우터는 호스트 이름을 RCP의 사용자 이름으로 사용합니다.
참고: 네트워크 혼잡을 피하기 위해 중간 홉 없이 라우터를 RCP 서버에 직접 연결하는 것이 좋습니다. 하나 이상의 중간 홉을 거쳐야 하는 경우 ip rcmd source-interface 명령을 사용하여 RCP 서버에 액세스하기 위해 사용할 인터페이스를 지정합니다. 자세한 내용은 rsh 및 rcp를 사용하도록 라우터 구성을 참조하십시오.
RCP가 먼저 작동하는지 확인합니다. 다음 예를 사용하십시오.
c7500#copy running-config rcp: Address or name of remote host []? 172.18.125.3 Destination username [c7500]? Destination filename [c7500-confg]? Writing c7500-confg ! 2781 bytes copied in 0.944 secs
일부 라우터 플랫폼은 선형 플래시 메모리 또는 PCMCIA 플래시 카드 대신 플래시 디스크를 지원합니다. 이러한 플래시 디스크의 대용량 저장 용량은 코어 덤프를 캡처하는 데 좋은 매체입니다. 플래시 디스크를 지원하는 라우터 플랫폼 및 Cisco IOS 소프트웨어 버전에 대한 자세한 내용은 Cisco IOS 릴리스 정보를 참조하십시오.
참고: 플래시 디스크에서 코어 덤프를 캡처할 때 플래시 디스크의 스토리지 크기가 코어 덤프를 일으키는 DRAM 메모리보다 더 큰지 확인해야 합니다. 예를 들어 DRAM 메모리 크기가 128MB인 경우 플래시 디스크의 스토리지 용량은 128MB보다 커야 합니다. 코어 덤프를 올바르게 가져오려면 더 큰 플래시 디스크 메모리가 필요합니다. 플래시 디스크에 메모리가 부족한 경우 코어 덤프가 생성되지 않습니다.
플래시 디스크를 사용하여 코어 덤프를 위한 라우터를 구성하려면 다음 명령을 사용합니다.
exception flash procmem|iomem|all device_name [:partition_number] !--- This command uses a Flash disk to configure the router for a core dump.
show flash all EXEC 명령은 exception flash 명령에 사용할 수 있는 디바이스를 나열합니다.
대부분의 TFTP 애플리케이션의 제한으로 인해 라우터는 코어 파일의 처음 16MB만 덤프합니다. 따라서 라우터의 주 메모리가 16MB보다 큰 경우 TFTP를 사용하지 마십시오. 자세한 내용은 Cisco IOS TFTP Client Cannot Transfer Files Larger than 16MB in Size를 참조하십시오.
TFTP를 사용하여 코어 덤프를 위한 라우터를 구성하려면 다음 명령을 사용합니다.
exception protocol tftp - 이 명령은 TFTP를 코어 덤프에 대한 프로토콜로 구성합니다.
예외 지역 크기 65536
예외 덤프 ip 주소
TFTP는 예외 프로토콜의 기본 프로토콜입니다.
참고: 네트워크 혼잡을 피하기 위해 중간 홉 없이 라우터를 TFTP 서버에 직접 연결하는 것이 좋습니다. 하나 이상의 중간 홉을 거쳐야 하는 경우 ip tftp source-interface 명령을 사용하여 TFTP 서버에 액세스하기 위해 사용할 인터페이스를 지정합니다.
사용된 TFTP 서버를 기반으로, 라우터가 쓰기 전에 적절한 권한으로 빈 대상 파일을 만들어야 할 수 있습니다.
TFTP가 먼저 작동하는지 확인합니다. 다음 예를 사용하십시오.
c7500#copy running-config tftp: Address or name of remote host []? 172.18.125.3 Destination filename [c7500-confg]? ! 2781 bytes copied in 0.944 secs
Basic Setup(기본 설정) 섹션의 명령 외에 이 섹션의 configuration(컨피그레이션) 명령을 사용합니다.
일부 메모리 문제를 디버그하려면 라우터가 코어 덤프를 만들고 특정 메모리 크기 매개변수를 위반할 경우 재부팅할 수 있습니다. 코어 덤프를 트리거하려면 다음 예외 메모리 명령을 사용합니다.
exception memory minimum size(예외 메모리 최소 크기) - 이 명령은 사용 가능한 프로세서 메모리의 양이 구성된 임계값 미만으로 감소하는 경우 강제로 충돌을 일으킵니다.
exception memory fragment size(예외 메모리 조각 크기) - Cisco IOS 소프트웨어가 구성된 임계값보다 큰 연속 프로세서 메모리 블록을 할당할 수 없는 경우 이 명령은 강제로 충돌을 일으킵니다.
size 매개변수는 바이트로 표시되며 기본적으로 60초마다 선택됩니다.
이 명령은 구성된 조건이 충족될 때만 라우터를 재부팅합니다. 예외 덤프 또는 예외 플래시도 구성하는 경우 라우터는 먼저 코어 덤프를 생성합니다. 이러한 명령은 메모리 누수를 진단하는 데 도움이 됩니다.
경우에 따라 기술 지원 담당자는 코어 덤프를 구성할 때 디버그 온전성을 활성화하도록 요청합니다. debug sanity 명령은 대부분의 Cisco IOS 소프트웨어 릴리스에서 숨겨진 명령이며, 메모리 손상, 특히 I/O 메모리 손상을 디버깅하는 데 필요한 경우도 있습니다. debug sanity를 활성화하면, 시스템은 할당된 모든 버퍼에서 sanity-check를 실행하고, 버퍼가 해제되면 다시 sanity-check를 실행합니다.
특권 EXEC 모드(또는 활성화 모드)에서 debug sanity 명령을 실행해야 합니다. 이 명령은 일부 CPU 용량을 사용하지만 디버그 온전성은 라우터의 기능에 큰 영향을 미치지 않습니다. 다른 debug 명령과 마찬가지로 디버그 온전성은 컨피그레이션에 저장되지 않으므로 시스템을 재부팅해도 유지되지 않습니다.
모든 유형의 crash에 대해 debug sanity를 활성화해야 하는 것은 아닙니다. 기술 지원 담당자가 이 명령을 활성화하도록 요청한 경우에만 디버그 온전성을 사용하십시오.
sanity-check를 비활성화하려면 undebug sanity 특권 EXEC 명령을 사용합니다.
코어 덤프용 라우터를 구성한 경우 설정을 테스트합니다.
Cisco IOS Software는 특별 특권 EXEC 모드(또는 활성화 모드)에서 특수 write core 명령을 제공하여 라우터가 다시 로드 없이 코어 덤프를 생성하도록 합니다.
성공할 경우, 코어 덤프 파일(들)은 각각의 메모리 영역들의 크기이다. 사용 중인 메모리뿐만 아니라 전체 메모리 영역이 덤프된다는 점을 기억하십시오.
write core 명령은 오작동하지만 충돌하지 않은 라우터의 경우에도 유용합니다.
개정 | 게시 날짜 | 의견 |
---|---|---|
1.0 |
24-Jun-2008 |
최초 릴리스 |