服务器每小时崩溃一次,但当时没有什么特别的

今天我的Ubuntu 12.04服务器每小时开始一次崩溃。 实际上在每分钟32分钟。 这似乎是一个实际的内核崩溃,即没有什么/ var / log / syslog,它只是停止。 我甚至写了一个脚本,每秒打印一次,以确定确切的时间,看着下一次崩溃即将到来,最好的我可以告诉大约是一小时后的32分13秒。

但那时候我没有CRON的工作,什么也没有。 我所拥有的Perl脚本与我已经运行多年的Perl脚本没有任何特别之处。 大概几周以来,我还没有改变服务器上的任何东西,而且没有什么重要的。 我已经经历了我能find的所有计划任务的来源。 当时没有什么特别的事情发生,除了服务器崩溃而没有留下任何原因的痕迹。

当它崩溃的时候,我别无select,只能通过托pipe公司的网站重新启动它,这是我迄今为止的解决scheme,但现在已经是凌晨4点了,我必须在某个时间rest一下。 但如果我这样做,我的网站将在一个小时内下降。 任何帮助将不胜感激,要么a)如何find这个正在运行的任务,并导致崩溃,如果这是事实,或者b)如何跟踪发生什么,当它不出现在syslog或dmesg。


已解决 。 我联系了我的主人。 显然,他们安装了新的服务器监控软件,标志着我使用了太多的磁盘I / O。 而不是告诉我,他们的这个软件只是杀了我的服务器。 它每小时运行32分钟。

可能还有其他一些原因。

  1. 是否有任何特定的应用程序(networking服务器)运行,消耗更多的内存(即,如果调整/优化不当,无法释放内存)

  2. 尝试捕获每分钟消耗更多cpumemory所有进程(可能有助于在您的scheme中find原因) – 编写一些脚本来捕获这些信息(将输出redirect到文件)并将其configuration到crontab

  • 你应该尝试消除的过程。 所以,在一小时之后大约30分钟,停止cron。 是的,我知道你不认为这是cron,但仍然这样做。 如果它在32分钟内没有崩溃,那么你可以试着去除当时运行的一半的cron脚本,直到find问题的脚本为止。 如果它仍然与cron禁用崩溃,然后下一次在30分钟,你也禁用了一半守护进程,直到你find有问题的守护进程。 (即使系统全部被禁用,如果系统仍然在32上崩溃,那么比你的系统被严重黑客入侵,或者当时你有电力问题,或者你是虚拟机和物理主机那时做什么)

  • 安装串行控制台(更好)或networking控制台(更容易)。 这样,当它崩溃时,你可能会在另一台机器上得到一个日志。

  • 作为一个临时解决办法,安装带有软件模块的watchdog软件包(如果你的硬件支持,也可以使用更好的硬件)。 它不会解决问题,但可能会让你有一些rest时间,直到你修复它

一些旧的“一直正常工作”的脚本可能会遇到一些新的数据问题,或者有太多的问题,所以他们吃掉了所有的资源。 你应该总是设置ulimit限制,所以它不会发生。 脚本也可能访问磁盘的受损区域,或尝试访问其他有问题的硬件,导致崩溃。 串行控制台应该告诉…

试试这个手表-n 10顶部#(每10秒重复命令)。

最好的祝福