我用谷歌搜索了内核崩溃转储,虽然我发现了很多关于它们是什么以及如何设置它们的信息,但我似乎无法得到关于是否应该在生产服务器上启用或禁用它们的建议。
据我所知,内核崩溃转储对于调试内核的开发人员最有用。
启用内核崩溃转储对普通系统管理员是否有任何价值?如果是,启用它们是否有缺点(例如,引入安全漏洞或导致低内存系统崩溃)?
答案1
好问题。我强烈建议保留它们,但要有一个警告...团队中必须有人能理解它们。能够理解 Linux 子系统,检查转储文件会有所帮助,这绝对是高级水平。也就是说,转储将包含导致问题的原因以及哪个进程或系统调用是罪魁祸首的信息,并且在开发或创建自定义代码的环境中非常有用。
答案2
通常,当您尝试调试生产服务器上的特定问题时,您会希望限制崩溃转储或运行崩溃内核。
原因有两方面:
1- 崩溃转储或核心文件会占用磁盘空间,根据配置方式,占用空间可能是内存的一小部分,也可能是全部。这可能会导致磁盘空间问题,并且根据崩溃频率,可能会非常快地填满磁盘。
2 - 运行 kdump、kexec 或崩溃内核等程序会占用额外内存。如果配置正确,这可能不是问题,但对于在内存利用率方面处于极限状态的系统来说,这是一个需要考虑的问题。
RedHat 有一个关于配置 kexec 和 kdump 的非常好的指南:
通常,这些都是很棒的调试工具,但并不适合用于长期稳定的生产服务器。