首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CentOs 7未能引导崩溃内核并在/var/crash中生成转储

CentOs 7未能引导崩溃内核并在/var/crash中生成转储
EN

Stack Overflow用户
提问于 2015-01-15 17:31:03
回答 2查看 5.3K关注 0票数 2

我们有一个问题,就是我们的CentOS 7服务器不会在内核恐慌时在/var/崩溃中生成内核转储文件。看来崩溃内核从未启动过。我们遵循了关于配置崩溃转储的Rhel指南(http://red.ht/1sCztdv),乍一看,所有的配置都是正确的。我们正在引发这样的恐慌:

代码语言:javascript
复制
echo 1 > /proc/sys/kernel/sysrq
echo c > /proc/sysrq-trigger

这会导致系统冻结。我们在控制台上没有消息,控制台就会失去响应。此时,我可以想象系统会启动崩溃内核,并开始将转储写到/var/crash。我把它留在这个冻结状态长达30分钟,给它足够的时间来完成整个转储。但是,经过严寒之后,重新启动/var/崩溃是空的。

此外,我还按照预期在KVM虚拟机和kdump单词中复制了配置。所以,我在物理系统上的配置有问题,或者硬件配置有一些奇怪的地方,导致挂起而不是转储。

我们的服务器是一个有24个核心和128 G9内存的HP G9。以下是其他一些细节:

代码语言:javascript
复制
[user@host]$ cat /proc/cmdline

BOOT_IMAGE=/vmlinuz-3.10.0-123.el7.x86_64 root=UUID=287798f7-fe7a-4172-a35a-6a78051af4d2 ro rd.lvm.lv=vg_sda/lv_root vconsole.font=latarcyrheb-sun16 rd.lvm.lv=vg_sda/lv_swap crashkernel=auto vconsole.keymap=us rhgb nosoftlockup intel_idle.max_cstate=0 mce=ignore_ce processor.max_cstate=0 idle=mwait isolcpus=2-11,14-23

代码语言:javascript
复制
[user@host]$ systemctl is-active kdump
active

代码语言:javascript
复制
[user@host]$ cat /etc/kdump.conf 

path /var/crash
core_collector makedumpfile -l --message-level 1 -d 31 -c

代码语言:javascript
复制
[user@host]$ cat /proc/iomem |grep Crash
2b000000-357fffff : Crash kernel

代码语言:javascript
复制
[user@host]$ dmesg|grep Reserving
[    0.000000] Reserving 168MB of memory at 688MB for crashkernel (System RAM: 131037MB)

代码语言:javascript
复制
[user@host]$ df -h
Filesystem                  Size  Used Avail Use% Mounted on
/dev/mapper/vg_sda-lv_root  133G  4.7G  128G   4% /
devtmpfs                     63G     0   63G   0% /dev
tmpfs                        63G     0   63G   0% /dev/shm
tmpfs                        63G  9.1M   63G   1% /run
tmpfs                        63G     0   63G   0% /sys/fs/cgroup
/dev/sda1                   492M  175M  318M  36% /boot
/dev/mapper/vg_sdb-lv_data  2.8T  145G  2.6T   6% /data
EN

回答 2

Stack Overflow用户

发布于 2015-01-19 16:14:17

在修改了以下参数之后,我们能够可靠地获得崩溃转储:

  1. 将crashkernel=auto改为crashkernel=1G:我不知道为什么我们需要1G,因为公式表示每1TB内存中就有128M+64M。
  2. /etc/sysconfig/kdump:从KDUMP_COMMANDLINE_APPEND excpet nr_cpus=1中删除所有内容,结果是: KDUMP_COMMANDLINE_APPEND="irqpoll nr_cpus=1“
  3. /etc/kdump.cfg:在makedump中添加压缩(“-c”)

不能百分之百确定为什么这样做,但它确实如此。想知道别人是怎么想的

埃里克

票数 2
EN

Stack Overflow用户

发布于 2015-02-01 20:23:41

埃里克

1G似乎有点大。对于普通的服务器,我从未见过超过200米的东西。不确定sysconfig设置。压缩是个好主意,但我不认为它会影响问题,因为您的目标是接近总内存,而且您只是抛出内核环。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27969444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档