Linux + 如何从控制台上的消息知道 Linux 机器为什么挂起

Linux + 如何从控制台上的消息知道 Linux 机器为什么挂起

如下图所示,我的Linux机器挂了,无法登录。

根据控制台上的消息,如何识别“挂起”的原因?

我搜索了/var/log/messages更多信息(但我迷失了方向,找不到任何有用的东西),但我不知道在哪里可以找到核心文件。

对于这种情况,我们可以在哪些其他文件中找到信息?

在此处输入图片描述

在此处输入图片描述

答案1

首先,试着看看你的特区发生此错误时的资源使用情况日志:

中央处理器sar -u

  • 您需要查看的两个主要列%iowait%idle

  • 高的 %iowait低的 %idle是 CPU 瓶颈的良好指标。

记忆sar -r

  • 检查该列%memused,但更重要的是检查%commit

加载sar -q

  • 检查负载数是否大于您所拥有的 CPU 数量(cat /proc/cpuinfo | grep proc)。

其次,也是最重要的一点,发生此错误的原因是将未完成数据刷新到磁盘的时间限制为 120 秒。默认情况下,Linux 最多使用 40% 的可用内存进行文件系统缓存。未完成数据将是超过此 40% 标记的所有数据。一旦超过 40% 标记,缓存将从异步写入(非阻塞后台操作,让进程继续)切换到同步写入(阻塞并让进程等待,直到 I/O 提交到磁盘)。如果 IO 子系统无法跟上并未能在 120 秒内刷新数据,则会发生此错误。

一个流行的解决方案是强制系统尽早冲洗。

您可以将以下内容添加到/etc/sysctl.conf

  • vm.dirty_ratio=10(在刷新到磁盘之前可以用脏页填充的系统内存的绝对最大数量(在这种情况下为 10=10%))
  • vm.dirty_background_ratio=5(刷新前可用脏页填充的系统内存百分比)

我希望这可以帮助你!

答案2

您可以使用目录中的文件查看较旧的 sar 条目/var/log/sa,使用与平常相同的命令,但添加-f /var/log/sa${day},我想在您的情况下是 22。

相关内容