机器X Centos 5.5 X64 hadoop +mongdb+hbase 机器内核奔溃数次,日志中均查不到详细原因 逐 打算利用kdump在奔溃时转存内存。
本文介绍如何开启kdump进行内存转存。
1 whats kdump
具体kdump是如何工作的 你可以参考
http://www.ibm.com/developerworks/cn/linux/l-cn-kdump1/?cmp=dwnpr&cpb=dw&ct=dwcon&cr=cn_51CTO_dl&ccy=cn
如果你对windows比较熟悉 你就简单的这么理解,kdump 做的工作就是windows的华医生的工作。what's Dr Waston?
开始-》运行-》drwtsn32 看看就晓得了。
2 vi /etc/kdump.conf
添加如下行
**********************************************
ext3 UUID=4a6034d4-3f03-42d8-b7da-4c76c828a0ad
path /var/kdump
core_collector makedumpfile -c --message-level 1
default shell
**************************************
这里以将内核转存到磁盘上的文件为例,如想用ssh ftp 或设备 参考kdunp文档。
上述的ext3 UUID=XXX 是/var/kdump目录所在的磁盘的UUID,每个机器不同, 可以使用 blkid 查看到,
core_collector makedumpfile -c --message-level 1
可以用0 1 2 4 7 8 15 7种选项 区别在于dump出的文件内容不同
Message | progress common error debug
Level | indicator message message message
---------+-----------------------------------------
0 |
1 | X
2 | X
4 | X
* 7 | X X X
8 | X
15 | X X X X
这一行 也可用
core_collector makedumpfile -c -d 1 代替
这里 可以选择0 1 2 4 8 16 31
Dump | zero cache cache user free
Level | page page private data page
-------+---------------------------------------
0 |
1 | X
2 | X
4 | X X
8 | X
16 | X
31 | X X X X X
3
修改内核引导参数,为启动捕获内核预留内存
vi /boot/gurb/gurb.conf
kerbel 后添加 crashkernel=128M@16M
128M@16M可自己根据情况修改
4 chkconfig kdump on
5 reboot
6 service kdump status
如果状态为 Kdump is operational 则可以继续下面的操作
7 人工触发 dump一次 测试前面配置是否正确
Kdump echo c > /proc/sysrq-trigger
之后 系统奔溃 转存 重启
8 ls -al /var/kdump/
可以看到 127.0.0.1-系统时间的目录 里面就是vmorce转存文件了
ok 设置成功 下次真奔溃的时候 上分析转存过程
转载于:https://blog.51cto.com/skybug/1337799