我在运行 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,这意味着每次运行它时都会生成一个新文件。让它在后台运行。