I got a problem with a KVM-virtualized server (Proxmox-based), running on Debian 7.8 and PLESK. Sometimes there are loads > 200 (sic!) and I just do not get the reason why.

The monitoring shows the increasing load (at first: 19, some minutes later: 50, some minutes later: 200) but the logs do not show anything for this timeframe.

I searched syslog and messages and all services are running fine.

If I try to connect via VNC I get messages like kernel hung tasks. Task XYZ stuck for 120 sec.

Any idea what I could do here?

  • Do you mean Load Average exceed 200? How many CPUs? What type of applications are you running on? – Anatoly Jul 25 '15 at 10:00
  • Yes load average exceeds 200. It has 4 cpu sockets and runs plesk (Apache, MySQL,...) – MyFault Jul 25 '15 at 11:23
  • we can advice something broadly but details are not enough yet – Anatoly Jul 25 '15 at 14:00
  • Hi Anatoly, which details do you need for example? – MyFault Jul 27 '15 at 7:00
  • 1
    There are variaty of reasons what can go wrong. If you don't have a monitoring, it makes things harder. Try it first of all: newrelic.com/sp/server-monitoring As the next step an output of the following commands can shed a little light: iostat -c, iostat -d, iostat -m, top (sort by memory and CPU), vmstat, mpstat -A. – Anatoly Jul 27 '15 at 7:19

Finding the culprit of heavy system load is not easy without extensive information of the applications running on the server.

Since you can reproduce every 30 minutes, you might want to use the following shell script and upload its output from immediately before the server crashes:


while true
  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

The $$ will be replaced by the pid of the shell script, which means that a new file is generated every time you run it. Have it run in the background.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.