如果我认为有限的内存或磁盘空间导致崩溃,应在日志文件中查找哪些内容

如果我认为有限的内存或磁盘空间导致崩溃,应在日志文件中查找哪些内容

对最近一系列崩溃的 /var/log 文件进行故障排除,如果我认为内存不足或磁盘空间不足,我应该在文件中查找什么内容?有没有一般术语Linux 中用于此类硬件故障的错误抛出术语?并且,哪些系统进程(例如内核)会受到内存严重短缺的影响?


作为背景,当我经历这些系统崩溃时,我正在我的 Fedora 17 沙箱项目笔记本电脑上托管的 Drupal 站点上工作。最近我下载了一些相当大的文件(我已经转移到媒体)并且硬盘空间减少到大约 1.8G。

我在这里找到了一些关于监视内存使用情况的有用帖子top或当前磁盘使用情况du。然而,这个问题具体是关于日志文件的。我在以下位置找到了类似的帖子费多拉论坛为了寻找解释,FPrintObject我做了 Memtest,但没有报告有什么不好的地方。

答案1

在通常的系统日志中找不到您要查找的信息。对于从命令行查看性能历史记录,sysstat 是一个出色的工具。

使用 sysstat,可以sadc收集系统信息并将其写入日志文件。日志文件是二进制格式,但是可以用命令查看sar

以下是不带选项的 sar 输出示例:

$ sar
09:15:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
10:05:01 AM     all     77.49      0.37     22.13      0.00      0.00      0.00
10:15:01 AM     all     77.30      0.40     22.29      0.00      0.00      0.00
10:25:01 AM     all     77.19      0.38     22.42      0.00      0.00      0.00
10:35:01 AM     all     39.31      0.35     23.80      0.01      0.00     36.53
10:45:01 AM     all     32.22      0.34     24.26      0.03      0.00     43.15
10:55:01 AM     all     32.80      0.33     23.78      0.01      0.00     43.08
11:05:01 AM     all     32.70      0.33     23.76      0.00      0.00     43.20
Average:        all     63.90      0.39     22.79      0.00      0.00     12.91

您看到的信息与 提供的信息相同top,但是是历史数据。您还可以查看有关 RAM、网络和磁盘利用率的详细信息。以下是 RAM 使用情况的示例:

$ sar -r
09:15:01 AM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit
02:15:01 PM    457076   1357116     74.81    277876    810948    205520      5.40
02:25:01 PM    456836   1357356     74.82    277876    811168    205384      5.40
02:35:01 PM    456976   1357216     74.81    277876    811256    204728      5.38
02:45:01 PM    457036   1357156     74.81    277876    811368    204840      5.38
02:55:01 PM    456588   1357604     74.83    277896    811492    204924      5.38
Average:       332452   1481740     81.67    277720    793953    416953     10.96

除了在本地运行 sar 之外,还有许多监控系统可以显示性能趋势数据。 Munin、cacti 和 zabbix 就是一些例子。这些的好处是可以将多个服务器的数据绘制成图表并保存在一个集中位置。

更新评论中的答案:

sar命令会告诉您在崩溃之前是否耗尽了 RAM。这将是显而易见的,因为 kbbuffers 和 kbcached 将急剧下降。您还可以检查 dmesg 是否有 OOM(内存不足)杀手,但只有安装了 klogd 后,dmesg 才会写入日志。您不会看到任何有关磁盘空间不足的日志,除非应用程序专门报告其无法写入磁盘。但是,如果磁盘已满,syslog 也将无法将日志写入磁盘。

相关内容