如何在没有任何内核恐慌或日志的情况下诊断 Linux 服务器冻结

Mar*_*ran 5 linux ubuntu

在过去的几个月里,一小群 Ubuntu 服务器对我来说一直崩溃。大多数时候,当服务器崩溃时,我可以在 dmesg、syslog 或其他各种日志系统之一中找到一些原因的证据。然而,对于这次特定的冻结,任何日志中都没有发生任何事情。系统真的死机了,键盘输入不起作用,系统根本没有 ping 信号。它处于离线状态,但仍在消耗电量。

如果只是一台服务器,我会责怪硬件,但我们谈论的是多台服务器,多代 CPU、RAM 和主板都存在问题。

我尝试升级到各种内核(当前为 4.15),但这也没有导致问题停止。

我主要寻找的是某种方法来增加内核日志记录,或者某种其他方法来从冻结的服务器获取某种信息,了解它在冻结之前正在做什么。

sho*_*hok 3

硬锁定通常是由于电源管理问题造成的。尝试:

  1. 在 BIOS 中禁用任何电源管理设置(例如:P/C 状态),或者使用“最大性能”配置文件;

  2. 在操作系统内部,使用“性能”电源调节器(即:cpupower frequency-set -g performance);

  3. 使用引导参数使用轮询空闲内核设置idle=poll

  4. 使用内核引导参数禁用任何 C 状态intel_idle.max_cstate=0 processor.max_cstate=0

为了找出锁定的原因,您应该一次进行一项更改。此外,请注意步骤 #3 和 #4将对功耗/效率产生重大影响,因此您应该仅使用建议的内核命令行进行测试/诊断。