You didn't provide the version of CentOS installed as your VMWare guest... but let's assume it's CentOS 6.x.

The default CFQ I/O scheduler is a poor choice for guest virtual machines (and most systems). You'll want to modify it. I used to just recommend setting the scheduler to deadline, but there's an easier method now for RHEL/CentOS systems...

The best way to handle that and a couple of other tunables is to download the tuned framework and apply a better profile to the system.

In your case:

yum install tuned tuned-utils

Once installed, try one of the appropriate profiles. For VM's, I either do enterprise-storage or virtual-guest. Test and see which works best for you. A reboot is NOT required between profile changes.

tuned-adm profile virtual-guest

The reasoning:


Edit:

Well, that's an improvement. Make sure you have the VMWare tools installed in your guest. Other items include filesystem tuning (e.g. noatime) and such... but really, those results should not matter beyond a certain point. A dd test is not representative of realistic usage patterns.

One of the other benchmarking tools like bonnie++ or iozone would be more helpful. Grab them via yum.

As a virtual machine, you need to be concerned with small random reads and writes. That will matter far more than sequential write metrics from your dd test.