当未触动的Unix服务器开始发疯时,您要检查的第一件事是什么?


10

因此,您可以轻松地设置此unix服务器,并且运行速度超级快,并且可以正常工作,而且几个月以来一切都很好,并且突然出现了各种各样的奇怪错误,这些错误针对各种不同的服务而出现,而且它们本身都不具有任何意义。 ,少在一起。

当您的ssh会话进入计算机时,应该检查哪些便宜的东西?

我对那些强调非显而易见的命令和罕见情况的创伤故事特别感兴趣,但是我认为明显的变化因人而异,因此我们可以自由列出所有这些故事。

Answers:


19

一阶:反应灵敏吗?

如果您无法登录,那么将会遇到更大的问题。通常有两种形式:硬件故障和软件故障。两者都可能是灾难性的。为防止DFA错误,请先检查常规硬件的运行状况-通常只需简单的浏览即可。

二阶:系统的基础结构是否状况良好?

检查系统的“ Golden Triad”:

  • 有足够的CPU时间可用于处理
  • 足够的磁盘空间可用于存储
  • 足够的内存可用于工作负载

在过去的几十年中,三合会已扩展为包括通信(网络)的“四合一”:

  • 连接功能正常,响应迅速并具有容量

三阶:问题的严重性是什么?

哪些程序或服务受到影响?按照严重性从高到低的顺序是系统的(系统范围的),群集的(一组程序)还是孤立的(特定程序)?程序群集通常会跳闸,因为特定的基础服务已失败或无响应。有时,系统性问题与此相关(例如DNS或IP冲突),但是知道在哪里查找通常是关键。

第四阶:诊断工具是否提供与问题相关的有用数据? 现在,您已经掌握了有关系统运行状况的信息(二阶),以及系统的哪些部分遇到了问题(三阶),这应该可以轻松地缩小问题的范围。

错误消息或日志文件应该是此过程中的常见路标。

CPU问题:

  • 负载
  • 最佳
  • 痕迹

磁盘空间/ IO问题:

  • df
  • lsof
  • iostat
  • 虚拟机

内存问题:

  • 自由

连接问题:

  • ping
  • 路线(以及arp和rarp以及朋友)
  • iptables,ipchains,ipfw(适用于那些BSD人员)
  • traceroute或mtr
  • 主机,nslookup或dig
  • netstat

最常见的投诉(我听到的):

电子邮件的传递速度不够快(从收件人发送到收据超过一分钟),或者电子邮件拒绝了我的发送尝试。这通常归因于垃圾邮件风暴期间Postfix的速率限制器,这会影响接受内部传递的能力。

一个真实的例子:

然而,这并非总是如此。有一次,无论服务重新启动,问题仍然存在;因此3分钟后就该开始四处看看了。CPU繁忙,但低于100%,但是在只有2个内核的盒子上,负载已飙升至15,并且威胁要更高。最高命令显示邮件系统和邮件扫描程序一起处于超速状态,但是没有amavis子进程可见。这就是线索-邮件队列命令(mailq)显示了150多个未送达的邮件,其中80%以上是垃圾邮件,过去20分钟内。快速调整以降低速率限制器(这降低了垃圾邮件风暴的接收率),同时增加了子电子邮件扫描程序的数量(以帮助处理积压),然后重新启动服务,解决了该问题,并且系统能够在短时间内完成交货。

问题的原因是,amavis父进程已经死了,子进程最终都按照自己的方式运行(经过多次扫描以防止内存泄漏,它们会自行终止)。因此,postfix中有SMTP进程试图联系...稀疏地...进行所需的垃圾邮件/病毒扫描。我正在使用的发行版中包含过时的软件包,这些软件包永远不会更新。由于安装将在一年左右的时间内完成,因此我手动将安装“替换”为最新版本,其中包括一些错误修复。从那以后我再也没有同样的问题了。


5

通常是“谁”,然后是“最后”

我长时间管理的计算机上出现了很多问题,这是因为“未接触”的定义非常松散-通常有人做了某事:)


4

好吧,我开始。

这一次让我感到难过,我花了数小时尝试了数千种不同的事情,到处禁用服务,重新启动等等。这是什么问题?磁盘空间不足。

因此,这是调试突然有问题的服务器时输入的第一件事:

df -h

我永远不会忘记这一点。这只是节省了我很多浪费的精力。以为我会分享。



1

如果可以,我将始终尝试关闭管理网卡的所有NIC。


1

检查dmesg是否存在任何错误-我通常以开头dmesg | tail,因为可能情况仍然有误,并且服务器仍在尝试执行任何导致错误的操作。


0

我首先检查的是“ top”(是否有奇怪的进程;那些占用内存或CPU时间的进程)。

如果那里什么都没出现,我会检查“谁”,以查看由于某种原因我的机器上是否还有其他人。

也许文件系统已卸载;请先检查“ cat / etc / mtab”,然后再“ fstab”,以确保一切都将在启动时显示。

检查正常运行时间,以确保包装盒上的用户数量合理(应该只有您自己),然后浏览var / log / auth.log以查看是否有问题。

这些都是万能的。根据您的包装盒引发的错误,您可能需要检查导致问题的特定过程。


0

顶部df -h并始终检查/ var / log以确保分区未填满。那使我彻底崩溃了几次。


0

df -ha

检查硬盘驱动器是否已满,并且没有收到警告

顶部或顶部

检查内存和CPU使用率不是异常高。

或者,如果该框没有响应,我进入vm-ware客户端并从那里检查cpu / ram。


0

在主机上运行类似(at)sar的命令几乎是必须的。能够低估获得CPU,网络,内存和磁盘I / O(以及其他)历史快照的有用性。

通过检查主机在过去24小时内的运行情况,并查看何时开始出现问题,我已经能够多次诊断出故障。


0

在linux上,我通常检查dmesg和/ var / log / messages或/ var / log / syslog。dmesg将指示是否是突然的硬件故障;系统日志中还会显示很多其他问题。


0

我想我要做的第一件事是磁盘空间检查(就像其他人提到的那样)。如果简单检查没有发现“常见”问题,那么我将作进一步调查。

我想做的一件事是捕获系统快照。以后我可以重新查找这些内容,以查找引起我注意的任何内容。

lsof > /tmp/lsof.tmp &
ps auxfw > /tmp/ps.tmp &
netstat -anp > /tmp/netstat.tmp &

从那里开始101的故障排除,但是我发现grep保存的日志要快一些,如果登录后情况消除了,我可以继续进行一些工作或寻找更改。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.