I need to fix my virtual server. What's wrong with it? Needs memory? or else?

4 core with 4GB memory

top - 10:06:13 up 53 min,  1 user,  load average: 31.74, 30.17, 24.79
Tasks: 180 total,   1 running, 179 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.9%us,  0.2%sy,  0.0%ni, 69.3%id, 29.6%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   4194304k total,  2753136k used,  1441168k free,        0k buffers
Swap:  4194304k total,        0k used,  4194304k free,  1060564k cached

closed as unclear what you're asking by jasonwryan, Jakuje, dr01, Gert, Archemar Apr 7 '16 at 7:23

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • What does your server run? – Faheem Mitha Apr 7 '16 at 3:32
  • CentOS Linux 6.5. Many online store there. – Screenager8 Apr 7 '16 at 3:50
  • No, sorry. I meant: what kind of jobs does your server do? E.g. web server? – Faheem Mitha Apr 7 '16 at 3:54
  • Yes... web server – Screenager8 Apr 7 '16 at 3:57

From the information you provided I can only tell your server needs a faster disk.

You could try to use atop to see which program does the most disk IO. If you are lucky you can configure that program to do less IO.

  • An alternative to atop is iotop. – Faheem Mitha Apr 7 '16 at 7:42

For a discussion on how load averages are calculated, look at the somewhat dated (but still useful) article --


From your data, since your load avg ~ 24 - 32 and you have 4 cores, the average load / core is ~ 6 - 8 (processes waiting for CPU). Since your CPU utilization is low (69% idle), we can only conclude that you have a large no of threads waiting for I/O to complete (the load avg calculation includes threads waiting for I/O to complete). The high wait % (~30) also seems to indicate the same. There are 2 things you could do - 1. run iostat on the disks to see detailed stats on per disk wait times. 2. run ps and check for 'D' in that status to see threads waiting for I/O to complete. The next step to solving the above (depending on where the problem is) could range from better and faster disks or taking a closer look at the I/O paths in your code. You could use other tools such as perf to gain even deeper insights into where exactly the application wait times come from.

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