对最近一系列崩溃的 /var/log 文件进行故障排除,如果我认为内存或磁盘空间不足是罪魁祸首,我应该在文件中查找什么?在 Linux 抛出错误的行话中是否有一个通用术语用于描述此类硬件故障?并且,内存严重短缺会影响哪些系统进程,例如内核?
作为背景,当我遇到这些系统崩溃时,我正在我的 Fedora 17 沙箱项目笔记本电脑上托管的 Drupal 站点上工作。最近我下载了一些相当大的文件(我已经转移到媒体上)并且只有大约 1.8G 的高清空间。
我在这里找到了一些关于top
使用du
. 但是,这个问题专门针对日志文件。我在Fedora 论坛上找到了一个类似的帖子,正在寻找FPrintObject
导致我进行 Memtest的解释,但那里没有任何不好的报道。
在通常的 syslog 日志中找不到您要查找的信息。要从命令行查看性能历史记录,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
Run Code Online (Sandbox Code Playgroud)
您看到的信息与 提供的信息相同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
Run Code Online (Sandbox Code Playgroud)
除了在本地运行 sar 之外,还有许多监控系统可以显示性能趋势数据。Munin、cacti 和 zabbix 就是一些例子。这些具有将多个服务器的数据绘制并保存在一个集中位置的好处。
更新以从评论中回答:
该sar
命令会告诉您在崩溃之前您是否用完了 RAM。这将是显而易见的,因为 kbbuffers 和 kbcached 将急剧下降。您还可以检查 dmesg 是否存在 OOM(内存不足)杀手,但如果安装了 klogd,dmesg 只会写入日志。您不会看到任何有关磁盘空间不足的日志,除非应用程序特别报告其写入磁盘失败。但是,如果磁盘已满,syslog 也无法将日志写入磁盘。
归档时间: |
|
查看次数: |
957 次 |
最近记录: |