CentOS 服务器不断停机,然后重新启动

CentOS 服务器不断停机,然后重新启动

CentOS 5.2 LAMP 服务器

服务器速度变慢,以至于没有服务响应。几分钟后,服务器恢复正常并运行良好。服务器一直在重复这个循环,到底出了什么问题?

我暂时停止了exim和服务。我使用命令查看了 CPU 使用率,但即使服务器停止响应,所有 CPU 使用率也为 0。我还运行了一个 Java tomcat 服务,我也已将其停止,但问题仍然存在。proftpdtop

日志没有显示任何 dos/ddos 的迹象。

有任何想法吗?

答案1

要检查的事项的简要列表:

  • 检查 top 的 CPU 使用率、负载和内存使用率。这应该可以很好地指示问题是什么。如果负载非常高,则说明您的服务器流量太大,无法处理。如果 IO 等待百分比很高,则说明磁盘活动太多。如果根本没有负载/CPU 使用率,则可能是某种应用程序锁定。
  • 在顶部检查使用大量内存/CPU 的应用程序(M=按内存排序,P=按 CPU 使用率排序),或至少超过应有的内存/CPU 使用率。通过查找“S”列中的“D”来检查锁定的应用程序。
  • 检查 top/free/vmstat 以了解交换使用情况。它应该为 0 或非常低。如果您正在使用交换,则必须重新配置 LAMP 堆栈以使用更少的内存。
  • 检查 netstat 是否存在 DoS 迹象(例如)。
  • 检查系统 (/var/log/messages) 和应用程序日志 (Apache、MySQL 等...) 中是否有相关错误消息。如果每隔几分钟就会重复出现,您可能会看到错误消息的模式。
  • 通过 检查磁盘空间df -h并使用 检查磁盘状态smartctl
  • 如果所有这些似乎都没有显示任何问题,则可能是某种应用程序问题或死锁。尝试启用/向应用程序添加调试日志记录,看看是否能缩小问题发生的位置。

答案2

在这种情况下,可能最好的工具是sar。它应该会显示截至服务器冻结时的统计数据。如果您没有安装它,它是软件包的一部分sysstat

它多久发生一次?一天一次,还是每隔几个小时一次?听起来可能是内存或磁盘 I/O,但我不太确定。

相关内容