Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I am stuck with this one.

Clean install Ubuntu 12.04 server 64bit on two physical machines. Machines are identical except one has 8GB RAM and the problem machine has 32GB RAM, both machines were purchased with identical specifications at the same time. Ubuntu fully updated as of 24 hours ago.

I am using virt-manager through X-windows over SSH tunnel to manage the virtual machines, the server OS doesn't run X-windows sessions at all, my desktop does.

Built and ran multiple Ubuntu 12.04 server 64bit virtual machines, each with 1GB RAM allocated. The VMs are all basically configured the same (forgiving MAC addresses, etc).

The 8GB machine has 2xVMs and the 32GB machine has 3x VMs. All virtual machines are reporting low load (less than 0.5, normally 0.01) and are not highly utilised at all.

8GB host server is reporting load of less than 0.1, normally 0.01. 32GB host server is reporting load of greater than 10.0 sustained. Again, all VMs are reporting internal load of less than 0.5. CPU in top is 95%+ idle, 0.0% wait.

Ideas on why 32GB machine has high load (while host idle and guests idle) while identically configured 8GB machine is reporting the expected low load?

Load on 32GB goes high with one VM started, running 3xVMs doesn't make load go higher. Stopping all virtual machines causes 32GB machine load to drop.

I cannot figure this out. I expect the 32GB load to match the 8GB load.

UPDATE #1: Nathan C

top - 16:19:54 up 8 days,  6:01,  1 user,  load average: 14.33, 18.23, 18.07
Tasks: 135 total,   1 running, 134 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.5%us,  0.4%sy,  0.0%ni, 98.9%id,  0.0%wa,  0.0%hi,  0.2%si,  0.0%st
Mem:  32938864k total, 29307380k used,  3631484k free,   331324k buffers
Swap:  4182436k total,        0k used,  4182436k free, 25330400k cached

 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
8752 libvirt-  20   0 3170m 747m 6932 S    7  2.3  26:27.20 /usr/bin/kvm -S -M pc-1.0 -enable-kvm -m 1024 -smp 1,sockets=1,cores=1,threads=1 -name r -uuid ...
8720 libvirt-  20   0 3969m 928m 6936 S    3  2.9  76:17.66 /usr/bin/kvm -S -M pc-1.0 -enable-kvm -m 1024 -smp 1,sockets=1,cores=1,threads=1 -name m -uuid ...
8687 libvirt-  20   0 3315m 1.0g 6936 S    2  3.3  60:33.03 /usr/bin/kvm -S -M pc-1.0 -enable-kvm -m 1024 -smp 1,sockets=1,cores=1,threads=1 -name d -uuid ...
share|improve this question
    
Can you update with the output from top -d 1 -n 5? –  Nathan C May 17 '13 at 14:58
    
Have a look at my answer to this question: unix.stackexchange.com/questions/75540/cpu-usage-of-kvm –  Hauke Laging May 17 '13 at 14:58
    
@HaukeLaging current clocksource is kvm-clock currently in guests, guests are identically configured between two physical machine, 8GB host machine behaving well with low load, 32GB host machine high load :-( Everything else between them are identical.. Also, no Windows, no X11.. Ubuntu server 12.04 64 across everything. –  Drew Anderson May 17 '13 at 16:26
    
@NathanC see updated.. –  Drew Anderson May 17 '13 at 16:27
    
Very interesting...I see tons of topics on this particular problem. What about the output of top -b -n 1 | awk '{if (NR <=7) print; else if ($8 == "D") {print; count++} } END {print "Total status D: "count}'? You may have to run it a few times before it produces something. –  Nathan C May 17 '13 at 16:46

1 Answer 1

up vote 1 down vote accepted

So after much investigation, I've now discovered what was wrong with the machines. Many thanks to those who helped!

A webpage which was helpful is here: http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/

Basically, my physical hosts have SATA disks, and the virtual machines were configured with SATA controllers and SATA disks. I had no idea this meant the virtualisation subsystem would present a virtual SATA and not SATA pass-through.

The solution was to switch to virtio for disks. This meant the VMs were now aware they're a part of a virtualisation system and would cooperate for better performance. (I think thats what it means).

Long story short, always use virtio for disks and networks on your virtual machines.

The hosts is now at a happy and cool load average of about 2-3. Much better than the 20-50 it was previously.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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