VMware Cloud Community
geraldbrandt
Contributor
Contributor

Poor disk performance in client

I'm getting really poor disk performance in my VMware Server 1.0.5 clients.

Host:

Timing cached reads: 7862 MB in 2.00 seconds = 3934.60 MB/sec

Timing buffered disk reads: 116 MB in 3.02 seconds = 38.41 MB/sec

Client:

Timing cached reads: 8112 MB in 1.99 seconds = 4073.43 MB/sec

Timing buffered disk reads: 34 MB in 12.56 seconds = 2.71 MB/sec

The host is:

Intel Core2 Quad @ 2.2 GHz with 2 GB RAM. The drives are dual 320 GB SATA in a mirror. OS: Ubuntu 7.10 Server

the clients:

1. single processor, 768 MB RAM, 10 GB pre-allocated disk, Ubuntu 7.10 Server

2. single processor, 512 MB RAM, 10 GB pre-allocated disk, Ubuntu 7.10 Server

3. single processor, 128 MB RAM, 10 GB pre-allocated disk, Ubuntu 7.10 Server

a .vmx from one of the clients looks like this:

#!/opt/vmware/server/bin/vmware

config.version = "8"

virtualHW.version = "4"

scsi0.present = "TRUE"

scsi0.virtualDev = "lsilogic"

memsize = "512"

scsi0:0.present = "TRUE"

scsi0:0.fileName = "Dev.vmdk"

scsi0:0.writeThrough = "TRUE"

ide1:0.present = "TRUE"

ide1:0.fileName = "/raid5/vmware/ubuntu-7.10-server-i386.iso"

ide1:0.deviceType = "cdrom-image"

floppy0.startConnected = "FALSE"

floppy0.fileName = "/dev/fd0"

Ethernet0.present = "TRUE"

displayName = "Dev"

guestOS = "ubuntu"

priority.grabbed = "normal"

priority.ungrabbed = "normal"

powerType.powerOff = "hard"

powerType.powerOn = "hard"

powerType.suspend = "hard"

powerType.reset = "hard"

floppy0.present = "FALSE"

scsi0:0.redo = ""

ethernet0.addressType = "generated"

uuid.location = "56 4d 30 ab 87 4f 6a 14-a1 d6 6c b2 52 d6 a9 8f"

uuid.bios = "56 4d 26 4a c5 e8 d3 24-4a 40 b3 77 e4 e1 3a 6b"

ethernet0.generatedAddress = "00:0c:29:e1:3a:6b"

ethernet0.generatedAddressOffset = "0"

ide1:0.startConnected = "FALSE"

tools.syncTime = "FALSE"

autostart = "poweron"

numvcpus = "1"

My host indicates, on average, maybe 5% CPU usage, but a load between 1.50 and 2.00. Since I'm hardly hittin CPU, I was going to move the VM's over to an AMD X2 5400, but I'm worried I'll get less performance.

Any ideas whats going on? The clients are almost unusable in this state.

Tags (3)
0 Kudos
2 Replies
oreeh
Immortal
Immortal

FYI: this thread has been moved to the Performance Forum.

Oliver Reeh[/i]

[VMware Communities User Moderator|http://communities.vmware.com/docs/DOC-2444][/i]

0 Kudos
larstr
Champion
Champion

I was going to move the VM's over to an AMD X2 5400, but I'm worried I'll get less performance.

The disk controller is normally the first bottle neck you hit (if you have enough memory in your host). Processors of today like the ones you have will normally give you more than enough of performance, but as long as you have a bad disk controller, disk setup or similar, it wont give you the ability to bring the best out of your processors.

Keep in mind that there's an overhead[/url] when using a disk controller in a virtual machine, so the importance of a good controller with lots of ram and a battery is much more important than on a physical system, especially as also several VMs will be using this same disk system at the same time. If you're using a software mirror that is also not good for your performance. Software mirrors are nowadays quite fast for ordinary work, but VMware workloads are still a bit special and you would be much better served using a good hw raid controller (with ram & battery).

The memory management in VMware Server will also by default drive up the disk IO load by default which will make your IO performance even worse. This because the way VMware is allocating memory for it's guests, and since you're using a host OS with a 2.6 kernel, there is no perfect solution for you, but there are still things that can be done in order to get better performance. The more memory you add to the guests, the more IO you will see hit the disk without the guest doing disk writes. The workaround[/url] is currently to move the .vmem files to /tmp by setting mainMem.useNamedFile = "FALSE" in the guests .vmx file and use tmpfs on /tmp.

You have however done several things correct here too. Choosing the server version of Ubuntu is good because it's using a 100Hz kernel (instead of 1000Hz in standard Ubuntu). If you also add the kernel parameters "noapic nolapic nosmp" to the guest it will make things run even better.

Your choice of using a virtual lsilogic controller is also optimal for your performance.

Lars

0 Kudos