VMware Communities
fcol313
Contributor
Contributor

Disk I/O (advice for tuning VM for SSD)

I just ordered a Corsair P128 SSD for my late 2007 Macbook. Does anyone have any tips on optimizing the usage of a Windows VM with an SSD (besides the standard “turn off Windows defrag and indexing”)? I only need a 20GB virtual hard disk for my WinXP installation. Would it be better to preallocate the disk space? Split into 2 GB chunks? Or what about creating a Boot Camp partition and creating the VM from the Boot Camp (I don’t need Boot Camp but thought this might thrash the SSD less as compared to a VMDK). I know running a Boot Camp VM is theoretically slower if using a normal hard drive but perhaps the SSD would more than compensate. The constantly growing VMDK files seem like it would thrash the SSD more than just virtualizing the Boot Camp partition (plus I'd rather not monitor how large the VMDK is becoming since I only have 120GB total). I don’t care if I lose the ability to use snapshots (I can clone periodically and all important Windows files are backed up to a server). The main downside I can see for the Boot Camp setup is that I would need to reinstall (and reactivate) my entire XP setup rather than just copying over an existing VM).

Any help is much appreciated!!

For anyone else considering a SSD, I also found a few general (non-VM specific) tips here:

“On my Unibody (early 2009)

I've disabled the Sudden Motion Sensor:

Also disabled the 'Put the hard disk to sleep when possible' in Energy Saver.

Finally the Hibernation feature with 'smartsleep' utility (to reclaim some space).

I'm using the SSD in place of the Optical drive (as the OS) and a normal WD scorpio blue as the main storage.

No freezing afterwards.”

Subject line only was edited by: fcol313

Tags (1)
0 Kudos
6 Replies
asatoran
Immortal
Immortal

I posted a response a couple of weeks ago in this thread: Running VMWare Workstation/Fusion on a SSD drive

Is this SSD using MLC? MLC has slow write performance comapred to the more expensive SLC. I didn't do extensive testing, but write performance of my MLC drive was not significantly faster than that my 7200RPM 2.5" internal drive.

If you're using the SSD as the OS drive and store the VMs on the standard HD, then you would (theoretically) be maximizing the life of the SSD since VMs tend to write to the drive a lot.

0 Kudos
fcol313
Contributor
Contributor

Thanks for the response. I know I'm in slightly unchartered territories with SSD's and VM's. The Corsair P128 does use MLC but has a much improved controller (and therefore as good or better performance than SLC) - see these articles for a decent explanation:

http://www.bit-tech.net/hardware/storage/2009/05/15/ocz-vertex-ssd-review/1

http://www.bit-tech.net/hardware/storage/2009/06/05/corsair-p256-256gb-ssd-review/1

Since I'll be installing the SSD to a Macbook, I will only have one drive (SSD only). If I find that performance is poor, then I may use an external 7200 drive for the VM. I might also rip out the optical drive and install one SSD and one standard hard drive.

If I don't hear any other advice, I'll just see what happens and post my experience here. There doesn't seem to be much info available on these newer SSD configurations and their usefulness with VM's.

0 Kudos
asatoran
Immortal
Immortal

...The Corsair P128 does use MLC but has a much improved controller (and therefore as good or better performance than SLC) -

Sales an marketing will say anything to make their product look good. Smiley Wink

...I know I'm in slightly unchartered territories with SSD's and VM's.

If you already have the drive, or are definitely going to get one, then I'd just try it. I got my SSD because I was turing a older Sony laptop into as much of a "netbook" as possible. So the performance of the SSD I got was not a critical factor as much as the power consumption. But I tried it just for kicks because like you've seen, there aren't that many people with SSDs yet. So you're on the bleeding edge and most likely your results will be the reference for the rest of us. Smiley Happy

0 Kudos
fcol313
Contributor
Contributor

Sales an marketing will say anything to make their product look good. Smiley Wink

I possibly stretched it a bit by saying this particular Corsair drive is as good as SLC. But if you look at the real world and hypothetical benchmarks (from many different review sites), this drive is vastly superior to older-generation MLC drives (and blows away 10K RPM drives) and is almost as good as the Intel X25 (SLC-based) series.

My original question still stands though: What can I do to maximize performance and minimize degradation of the SSD for use with a Virtual Machine? From what I gather, I should go with a preallocated disk to minimize disk writes? What about splitting into 2GB chunks? I also came across some recommendations for (real, non-virtualized) XP machines to disable to following via regsitry:

Disable Automatic Boot Disk Optimization

Last Access Time Stamps

Enable write caching on hard disks

I have no clue if these are even used in a virtual machine, though. I certainly can go the trial-and-error route but would appreciate any insight or advice.

0 Kudos
mattmattoid
Contributor
Contributor

Would be interested to know how you got on as I am looking into this too. I came across this thread while searching for more information on the topic, but I already had some ideas about how to do this. Im thinking of VMWare workstation here, but I think the principles are identical although I confess my fusion-specific knowledge is essentially zero.

By using a linked clone on the HDD from a template on SSD, you get most reads from SSD and most writes to HDD (at least until linked clone starts getting very large), which is optimal. Of course there is a performance hit using a linked clone but I suspect with the fast read speeds of SSD, the hit in real world situations would be negligible.

Once the clone becomes too large to see these benefits, just commit (by creating a full clone of the linked clone and overwriting template) or create a fresh linked clone as required.

You could also create separate virtual disks for commonly read and commonly written files as are you are encouraged to do on your SSD equiped host.

Im not sure if there is anything like MFT (which seems almost a requirement in Windows to prevent stuttering and accelerated burn in environments with frequent small random writes that I would expect VMs to be a prime example of) for Mac, but if so that would be a good idea too.

Of course, all of the above is pure conjecture until I actually get some disks and do some benchmarking Smiley Happy

0 Kudos
fcol313
Contributor
Contributor

I can't speak at all to your proposed setup - sounds good in theory. But I'm using a Macbook and don't feel like ripping out the optical drive to add a second HD (although I might go to a dual-HD setup if I upgrade to a new Mac laptop). Sorry I can't help with your specific questions. And if anyone has any suggestions for optimizing SSD with Fusion, I'd love to hear 'em.

Since I'm posting, here's an update to my original post:

I'm totally happy with the performance of my SSD (Corsair P128) and Fusion. I installed my SSD exactly 2 months ago. I haven't seen any degradation (based on subjective observations and Xbench) nor I have I seen any stuttering. Here are some of my setup notes:

Macbook 3.1 (Late 2007), 2.2 Ghz C2D, 4GB RAM

Snow Leopard (although I originally installed the SSD when I was running 10.5; upgraded with no problems).

Disabled Sudden Motion Sensor in the laptop

Disabled the 'Put the hard disk to sleep when possible' in Energy Saver.

Used Smartsleep utility so that sleep only saves state to RAM

Fusion 2.05, WinXP SP3 (768MB RAM, 15GB HD)

I don't recall making any registry tweaks to the XP VM. I left the paging file settings as default. Defrag is disabled.

I use Windows Search (yes, indexing might be "bad" but I can't live without it for email and it displays results even faster with the SSD)

I use the XP VM daily for work (Outlook, MS Office; no disk intensive apps).

I simply copied over my existing VM (not preallocated; split into 2GB chunks)

I still use snapshots (VM has "grown" from 14GB when I copied it to the SSD setup to 17GB in 2 months use)

So in the end, I didn't really do anything special on the VM side. In theory, general VM usage, indexing, XP paging, etc should be thrashing my SSD and hurting performance but so far, so good. Granted, I only use Outlook and MS Office in the VM so performance isn't a big deal. On the Mac side, photo management and DICOM/Osirix performance is noticeably quicker when files are located on the SSD. And of course, I see and appreciate the generic SSD benefits in boot time, app launching, etc. But I don't have any specialized needs - I'm just a geek who likes the new tech (and like throwing my Macbook into my bag the instant I close the lid without worrying about the hard drive).

0 Kudos