SuSe Linux中是否有任何日志logging,说明机器是否由于失控而挂起?

我有一个SuSe Linux服务器,由于未知的问题而被挂起,我想知道是否有一个失控的进程正在运行,每时每刻都在造成它挂起。

问题是我不知道去哪里寻找它(我不想花一整天的时间去寻找失控的东西) – 所以我的问题是这样的:有没有loginSuSelogin失控? 如果没有,有没有办法logging这样的事情?

非常感谢!

更多信息将有所帮助。 你怎么定义“挂起”? 假设您有物理访问服务器的权限,您可以检查在挂起后哪些内核消息出现在屏幕上。 服务器停止后是否需要重新启动?

您可以跟踪正常的系统日志,直到/ var / log / messages中的崩溃点。 如果您在服务器停止时有一个打开的会话,请通过运行dmesg查看驱动程序消息。

你有没有关于硬件的细节? 如果这是服务器级硬件,则可以检查系统的硬件日志,以查看是否存在坏RAM等问题。

不,那里通常没有一个机制来告诉你究竟是什么导致了“挂起”。

当你的机器运行时,使用top来查找进程吃得太多的CPU,可以free地检查内存问题(交换到磁盘可以使机器非常非常慢),并通过/ var / log skimming文件查看是否有任何外观错误。

ps aux | grep Z 如果有的话, ps aux | grep Z会过滤出僵尸进程。

在服务器冻结的情况下,我用SuSE打开了一个案例。 他们推荐了这些步骤:

  • 连接一个串行控制台(不是非常有趣的冻结),你有iLO …
  • 将系统日志redirect到一个远程机器(这样你可以看到“有名的遗言” – 也许在原始系统可以同步到/ var / log / messages之前)
  • 安装一个KDUMP-Kernel和一个debugging内核(让你有机会得到一个内核,而不是冻结)

最后一个在我的案例中得到了帮助 – 但是我能够通过触发某个特定的操作来解决问题,然后在冻结之前得到了一个Kernel-Debug,并且SuSE能够为我提供一个PTF(point-to-fix)内核,它解决了这个问题。

但是,你还没有描述在哪种情况下你的问题发生在半夜? 从来没有在工作?

要检查僵尸进程(不存在),我们可以使用该命令。

 ps aux|awk '$8 == "Z" {print $0}' 

这将只打印已经失效的进程。