kdump是在系統崩潰、死鎖或者當機的時候用來轉儲記憶體運行參數的一個工具和服務。
打個比方,如果系統一旦崩潰那么正常的核心就沒有辦法工作了,在這個時候將由kdump產生一個用於capture當前運行信息的核心,該核心會將此時的記憶體中的所有運行狀態和數據信息收集到一個dump core檔案中以便於Red Hat工程師分析崩潰原因,一旦記憶體信息收集完成,系統將自動重啟。這和以前的diskdump,netdump是同樣道理。只不過kdump是RHEL6特有的。
查看Linux系統是否打開kdump:
執行命令:ulimit -c 如果輸出為 0 ,則代表沒有打開。如果為unlimited則已經打開。
臨時打開/關閉Linux的kdump方法:
ulimit -c unlimited 打開;
ulimit -c 0 關閉;
修改配置檔案進行打開/關閉kdump方法:
- vi /etc/profile檔案
在檔案末尾加入新行,ulimit -S -c unlimited> /dev/null 2>&1 - 保存退出:wq!
- 執行 source /etc/profile 使當期設定生效
- 通過ulimit -c 查看下是否已經成功打開。
系統崩潰時kdump檔案位置及查看方法:
修改生成的日誌檔案的路逕到/var/log下
echo “/var/log” > /proc/sys/kernel/core_pattern
kdump檔案名稱為core.xxxx
echo “/var/log” > /proc/sys/kernel/core_pattern
kdump檔案名稱為core.xxxx
執行gdb core.xxx進行調試。