Wednesday, August 12, 2009

Improving performance of Virtual Machines on Lap Top [Developer]

As consultant I shuttle between clients, working at the corner of table, Starbucks, some time on train and some time at home. So I prefer to have my development system packaged as a Virtual Machine (My favorite is VMWare Workstation). Couple of thinks I like to high light here on how I made my VMs run much faster.

Where to place VM files?

When you place your VM files on a secondary hard disk than the main hard disk you will get better performance. You host OS and your VM machine running will not compete on the same hard disk. Thus you will have better I/O performance. Use secondary hard drive. to place your VM files.

What type of External Drive gives better performance?

Nowadays you get USB2/FireWire/eSata drive with different combination of ports. Below is the speed guide so you will know why I recommend eSata II (More details look at Wikipedia)

Port StandardSpeed
USB260 Mega Bytes/Sec
FireWire 80098 MB/s
SATA 150 (SATA I)150MB/s
SATA 300 (SATA II)300 MB/s

There are other standards but within the realm of Lap Top and the one that can fit in your bag I have listed only the possible choices.

How to connect?

You will need an SATA port on your lap top. If if you have a lap top that is based on PCI Bus standard, then you are limited with buying a PCIMCIA card. The PCI Bus standard that is 32 bit cam support only SATA I/150 type . Due to the PCI Bus limitation, you will get maximum of 150MB/S support.

If you have the most recent lap top with an eSATA port, check the support. If the port is of type SATA I then you get only 150 MB/s and if the port is of type SATA II then you get 300 MB/s support.

If you have a lap top that do not have an eSATA port, then you may have an expressCard slot, then you can buy an expressCard SATA PCI card. These expressCARD SATA cards support SATA II , ie, 300 MB/s.

Then you will also need a eSATA cable to connect the SATA ports between the External Hard Drive and your Lap Top or the PCI card.

Watch out for the port types, there are “I” type and “L” type. You will need one end to match your external hard drive port and the PCI card or the Lap top SATA port.

Again watch out for the SATA cable type, there available both in SATA I and SATA II.

What I did?
  • I have old lap top with PCIMCIA slot. So my choice is to buy a MCIMCIA card. Lantech card
  • At the time I shopped acomdata made better and cheaper eSata drives ( their case is made up of bamboo and aluminum). I bought 750GB USB2/FireWire 800/eSata II drive
    • Although at the present I have to stick with SATA I standard with my lap top, in future when I refresh my lap top then I can get double performance with SATA II port.
  • Then I matched the port type, in my case both side happens to be I type, so bought an I type cable made by LinkDepot.
What is the performance?

Below is the comparison you can see the differences between an USB 2 and eSATA I

USB2 (25MB/s)eSATA I (70 MB/s)
image image

Although the SATA I is supposed to be transferring up to 150MB/s, in reality I am getting 50% of the performance. Among all the research I have done, 50% performance seems be the case.

With the above setup I am finding that my VMs running off of VMWare workstation are satisfactory. Meaning you can get the machine started, shut down, coded, browsing, snapshoting, pausing , each taking few seconds to under a minute.

Happy VMing :-)