服务器因负载过高而崩溃

服务器因负载过高而崩溃

我在运行 Debian 7.8 和 PLESK 的 KVM 虚拟化服务器(基于 Proxmox)上遇到了问题。有时负载超过 200(原文如此!),但我不知道原因是什么。

监控显示负载不断增加(起初为 19,几分钟后为 50,几分钟后为 200),但日志未显示此时间范围内的任何内容。

我搜索了系统日志和消息,所有服务都运行良好。

如果我尝试通过 VNC 连接,我会收到类似的消息kernel hung tasks. Task XYZ stuck for 120 sec

知道我能在这里做什么吗?

答案1

如果没有关于服务器上运行的应用程序的大量信息,那么找到系统负载过重的罪魁祸首并不容易。

由于您可以每 30 分钟重现一次,因此您可能需要使用以下 shell 脚本并在服务器崩溃之前立即上传其输出:

#!/bin/sh

while true
do
  date >> /tmp/monitoring$$.txt    
  echo "PS reports:" >> /tmp/monitoring$$.txt
  ps aux | sort -nrk 3,3 | head -n 5 >> /tmp/monitoring$$.txt
  echo "I/O stat -c:" >> /tmp/monitoring$$.txt
  iostat -c >> /tmp/monitoring$$.txt
  echo "I/O stat -d:" >> /tmp/monitoring$$.txt
  iostat -d >> /tmp/monitoring$$.txt
  echo "I/O stat -m:" >> /tmp/monitoring$$.txt
  iostat -m >> /tmp/monitoring$$.txt
  echo "vmstat:"
  vmstat >> /tmp/monitoring$$.txt
  echo "mpstat:"
  mpstat -A >> /tmp/monitoring$$.txt
  sleep 300
done

$$被替换为 shell 脚本的 pid,这意味着每次运行它时都会生成一个新文件。让它在后台运行。

相关内容