Ubuntu故障排除

我有一台计算机不断变得无法访问,重新启动修复了这个问题。 这是负载较重(高cpu,高内存使用率),但似乎大部分是稳定的。

什么是确定为什么死在我身上的好方法? 我需要这样做,而计算机正在加载/生产。

例如:

  • 在什么日志中查找什么? (Telltales常见的问题?任何好的日志parsing器按硬件组件或公共线程sorting?如何find重新启动的时间戳/日志条目?按错误级别sorting?(关键,警告等))
  • 如何从远程确定ram是否好? (memtest,可以与系统的其他部分一起运行,类似于Hgi Design for Windows的memtest)
  • 如何确定硬盘上是否有坏扇区? (如何查找在操作系统级别的读/写错误?智能信息最好是不准确的,不适合确定问题的范围 – 寻找类似于Windows事件查看器“磁盘错误”类别的东西)
  • 如何在重新启动之前发现最后一个错误发生在日志(什么是parsing日志的好方法) – 部分由bulleric回答,但想要一个具体的例子,如何find重新启动条目/ timestamp 🙂
  • 如何从日志中确定(在任何重新启动后),导致它无响应的原因(EG寻找耗尽的内存告警,如果networking被丢弃,内核崩溃) – 在Windows中,意外的重新引导事件被logging为“critical”在这个事件之前有用的日志条目的高概率 – 在Ubuntu下search什么来find它?

*编辑:

基于这个答案,我想我应该澄清一些:

负载很高,因为它是一个生产服务器,不是因为一个进程泄漏内存,或在一个无休止的循环燃烧CPU。 这是正常的,并导致一个巨大的日志,这是不切实际逐行阅读。 我对htop,cacti,nagios,munin很熟悉 – 这些都没有解决我所问的问题,因为它们只表明系统负载很重(我已经知道)。

你必须search问题的开始

在什么日志中查找什么?

第一件事是打开顶部或如果安装htop
并searchoverloadet任务..许多活跃的商店,处理负载..

如果你在日志中发现任何东西
tail -f / var / log / syslog
tail -f / var / log / dmesg

并查找错误或警告,最终在top或htop中findoverloadet任务。
在/ var / log /中有许多程序的许多日志文件。

如何从远程确定ram是否好?

对于这个问题,你可以使用像Munin这样的基于web的分析工具
http://munin-monitoring.org/

写一个testing内存的小bash脚本,当你遇到问题时发送邮件。 或使用
nagios – >它是一个监控工具,当你得到一个邮件的RAM的问题。

如何确定硬盘上是否有坏扇区?
找出你的主要硬盘或你将要testing的硬盘是什么
fdisk -l
并用fsck(filesystemcheck:fsck检查并修复Linux文件系统)检查硬盘(s)

如何在重新启动之前find最后一个错误发生在日志(什么是parsing日志的好方法)

你可以使用tail命令和lines选项

tail -200 / var / log / syslog
尾-200 / var / log / dmesg

search运行级别更改或closures序列init 6是重新启动运行级别
它可以帮助您使用寻呼机(less)

tail -200 / var / log / syslog | less

我希望我能帮助一点点:)

祝你成功

我build议安装htop ,以便对系统进行很好的概述。 你也可以使用top 。 如果负载非常高,系统停止响应,请使用sudo service $service stop ,尝试ps aux和kill不需要可疑进程或停止服务。

  • cd /var/log; ls -lrt cd /var/log; ls -lrt为您提供最新的更改日志,请检查这些日志
  • ssh server free -m为您提供有关内存和交换使用情况的信息
  • 坏扇区:使用smartctl来检查你的磁盘
  • 我使用less查看日志并使用键bf来滚动它们。 键入/让您search文字。 您也可以在文件上使用grep来查找特定date或文本。

在Ubuntu系统上,你可能想把你的用户添加到组adm ,这样你就不必使用sudo来读取一些文件。

另一个好主意是安装logcheck并设置它发送电子邮件给你关于正在发生的事情。 如果您有多台计算机需要处理,则可能还需要安装像xymon这样的监视系统来识别exception情况。

祝你好运修复你的系统!

我会以不同的方式来处理它。 打开几个会话 – 一个是tail -f /var/log/syslog ,第二个是tail -f /var/log/kern.log ,第三个用于监视top ,第四个用于运行stress实用程序。 现在,模拟加载的系统,看看会发生什么。 我build议只从CPU负载开始工作。 另外,在testing期间ping机器并监视它是如何响应的。

请注意 – 如果您耗尽了内存并且进行了交换(除非在SSD上),机器将看起来完全如您所描述的那样。 祝你好运!

你有没有考虑硬件相关的问题? 我会按顺序执行以下操作:

  1. 检查networking防火墙/configuration问题。
  2. 检查硬件故障 – 尝试插入现成的网卡并使用该网卡,而不是正在使用的网卡。
  3. 如果您周围有类似或相同的机器,请将机箱脱机并testing硬件。 同时看看你是否有更换相同的问题 – 确定问题是硬件/软件相关的好方法。
  4. 如果你没有硬件的话,那么是时候为它做一个商业案例了。

祝你好运!