本文檔介紹可用於在Cisco IOS®軟體中啟用核心轉儲的各種選項。
注意:核心轉儲可能難以獲得。只有有權訪問原始碼和詳細記憶體對映的思科技術人員必須嘗試解釋核心轉儲。在許多平台上,使用crashinfo功能可能不需要核心轉儲。有關詳細資訊,請參閱從Crashinfo檔案檢索資訊。
思科建議您瞭解以下主題:
本文中的資訊係根據以下軟體和硬體版本:
Cisco IOS軟體版本12.0及更高版本
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
當路由器崩潰時,請記得獲取路由器的整個記憶體內容的副本,這稱為核心轉儲。您的技術支援代表使用核心轉儲來確定崩潰的原因。路由器在重新載入之前將記憶體內容寫入伺服器。並非所有崩潰都會生成核心轉儲。有關詳細資訊,請參閱崩潰型別。
當路由器嘗試轉儲核心時,請始終捕獲控制檯日誌。控制檯日誌提供有關崩潰的資訊。此外,ROM Monitor (ROMMON)通常會在崩潰時列印資訊到控制檯(並且只列印到控制檯)。
注意:核心轉儲對於解決大多數崩潰案例不是必需的。當路由器在網路中工作時建立核心轉儲可能會中斷網路運行。僅在技術支援代表的指導下使用本文檔中的命令。
設定路由器以生成核心轉儲有四種基本方法:
透過檔案傳輸通訊協定(FTP)
透過遠端複製通訊協定(RCP)
透過快閃磁碟
透過簡單式檔案傳輸通訊協定(TFTP)
以下每種方法都使用以下配置命令:
exception region-size size
此命令指定異常時間記憶體池的區域大小。如果進程記憶體損壞,則使用exception-time記憶體池。size引數以位元組表示,您可以配置從1024到65536位元組的大小。
exception core-file filename [compress]
此命令指定核心轉儲檔案的名稱,而不是預設名稱。要恢復為預設名稱,請使用此命令的no形式。
有關本文檔中的命令的詳細資訊,請參閱命令參考工具(僅限註冊客戶)。
當處理器記憶體池損壞時,可使用exception region-size命令定義少量記憶體用作後退池。這有助於防止核心傾印處理作業期間的記憶體失敗。size引數以位元組表示,您可以配置從1024到65536位元組的大小,預設值為16384位元組。將exception region-size配置為65536位元組,以增加成功核心轉儲的機率。
預設情況下,處理器記憶體核心轉儲將寫入名為「hostname-core」的檔案中,其中hostname是hostname配置命令定義的路由器名稱。如果路由器具有輸入/輸出(I/O)記憶體(例如Cisco 7200),還可以建立I/O記憶體核心轉儲,並將其寫入檔案「hostname-coreiomem」中。
使用exception core-file 命令可覆蓋預設的核心轉儲檔名。如果檔案伺服器具有DOS FAT檔案系統,請勿指定長度超過六個字元的檔案名稱。例如,如果用「exception core-file foobar」配置路由器,則核心轉儲的處理器記憶體名稱為「foobar」,I/O記憶體轉儲的名稱為「foobario」(這足以給您提示,提示您存在I/O記憶體轉儲)。
確定檔案伺服器上有足夠的磁碟空間,可容納多個完整的核心傾印。可以使用compress選項壓縮核心轉儲檔案。
注意:將核心轉儲檔案寫入快閃記憶體磁碟時,將自動應用Compress。如果使用RCP,則不支援compress選項。
注意:建議使用檔案傳輸通訊協定(FTP)來設定核心傾印。
要使用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。
當思科技術支援代表請求您提供核心轉儲檔案時,您可以透過匿名FTP將核心轉儲檔案傳送給思科。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)請求遠端複製時使用。
exception protocol rcp— 此命令將用於核心轉儲的協定配置為RCP。
exception region-size 65536 - 此命令配置區域大小。
異常轉儲ip-address
如果您尚未配置使用者名稱,路由器會使用其主機名作為RCP的使用者名稱。
注意:為避免網路擁塞,Cisco強烈建議您直接將路由器連線到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記憶體大小為128 MB,則快閃記憶體磁碟的儲存容量必須大於128 MB。要正確獲取核心轉儲,需要更大的快閃記憶體空間。如果隨身碟記憶體不足,則不會建立核心轉儲。
要使用隨身碟配置核心轉儲的路由器,請使用以下命令:
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應用的限制,路由器僅轉儲核心檔案的前16 MB。因此,如果您的路由器的主記憶體大於16 MB,請不要使用TFTP。有關詳細資訊,請參閱Cisco IOS TFTP客戶端無法傳輸大於16MB大小的檔案。
要使用TFTP配置核心轉儲的路由器,請使用以下命令:
exception protocol tftp— 此命令將TFTP配置為核心轉儲的協定。
exception region-size 65536
異常轉儲ip-address
TFTP是例外協定的預設協定。
注意:為避免網路擁塞,Cisco強烈建議您直接將路由器連線到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
除基本設定部分中的命令外,還應使用本部分中的配置命令。
要調試某些記憶體問題,可以導致路由器建立核心轉儲,並在違反某些記憶體大小引數的情況下重新啟動。要觸發核心轉儲,請使用以下exception memory命令:
exception memory minimum size - 如果空閒處理器記憶體量低於配置的閾值,此命令將強制崩潰。
exception memory fragment size —如果Cisco IOS軟體無法分配大於所配置閾值的連續處理器記憶體塊,此命令將強制發生崩潰。
size引數以位元組表示,預設情況下,每60秒檢查一次。
這些命令僅在滿足配置條件時才會導致路由器重新啟動。如果您還配置了exception dump或exception flash,則路由器將首先建立核心轉儲。這些命令有助於診斷記憶體洩漏。
有時,當您配置核心轉儲時,技術支援代表會請求您啟用debug sanity。在大多數Cisco IOS軟體版本中,debug sanity命令是隱藏命令,有時它是調試記憶體損壞(特別是I/O記憶體損壞)所必需的。啟用debug sanity時,系統對配置的每個緩衝區運行健全性檢查,並在釋放緩衝區時再次運行健全性檢查。
必須在特權EXEC模式(或啟用模式)下發出debug sanity命令。雖然此命令使用一些CPU容量,但debug sanity不會嚴重影響路由器的功能。與其他debug命令一樣,debug sanity不儲存在配置中,因此無法在系統重新啟動後繼續運行。
並不是所有型別的崩潰都需要您啟用調試健全性。僅當技術支援代表請求您啟用此命令時,才應使用debug sanity。
要停用健全性檢查,請使用undebug sanity特權EXEC命令。
配置核心轉儲的路由器後,測試設定。
Cisco IOS軟體在特權EXEC模式(或啟用模式)下提供特殊的write core命令,以使路由器在不重新載入的情況下生成核心轉儲。
如果成功,則核心轉儲檔案為各個記憶體區域的大小。請記住,整個記憶體區域都是傾印的,而不僅僅是使用中的記憶體。
write core命令在路由器發生故障但尚未崩潰的情況下也十分有用。
修訂 | 發佈日期 | 意見 |
---|---|---|
1.0 |
24-Jun-2008 |
初始版本 |