Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

vigilant

macrumors 6502a
Original poster
Aug 7, 2007
715
289
Nashville, TN
I picked up a Mac Mini with Quad Core, and added 16GB of memory. Plan is to make it a workstation for me to use.

Right now my biggest bottleneck though is from IO when running several VM's in Vmware Fusion.

I can either build a Fusion Drive with a 256GB SSD using the 1TB drive thats inside the Mac Mini, or I can just go buy a 512SSD for a bit more money.

The idea of the Fusion drive is really really alluring to me, so I'm tempted to try that, but I'm curious how much the Fusion Drive would help with VMWare.

My thought being performance increases I would imagine would be better because VMWare would be paging to the SSD in theory. Also with VMWare Fusion set to split VMDK's at 2GB, the most frequently used segments should fit inside of what Fusion Drive looks for as far as optimizing by keeping in the SSD.

Thoughts?
 
Also with VMWare Fusion set to split VMDK's at 2GB, the most frequently used segments should fit inside of what Fusion Drive looks for as far as optimizing by keeping in the SSD.
Fusion splits data at the BLOCK level (4kB). So it can sub-divide as much of the VMDKs onto the faster drive as needed.

This seems to be the bit that people have trouble with. Even if you regularly use multi-Gig files and "need" the speed -- the chances are that not ALL that data has to be on the SSD for you to still get the speed advantage. It may put it all on the SSD -- it may not. There may be a reasonable chunk of that virtual disk that rarely gets used.

You don't need a massive SSD for Fusion to work. It can intelligently put only those most frequently accessed BLOCKS on the SSD, while still maintaining file hierarchies and without tedious mucking about with sym links.
 
I read from a few people that a larger SSD would have helped out in tracking more data as from what I've read, Fusion Drive fills up the SSD till it has about 4GB free. I imagine I'd be able to store many more blocks in general if I had a 256GB SSD as opposed to a 128GB one. The price difference to build one myself, the cost is negligible for this, especially since I telecommute it's worth it to me to slightly over do it.
 
I picked up a Mac Mini with Quad Core, and added 16GB of memory....
Right now my biggest bottleneck though is from IO when running several VM's in Vmware Fusion....
...
My thought being performance increases I would imagine would be better because VMWare would be paging to the SSD in theory
....
Thoughts?

The root cause of the problem is very likely lack of memory; RAM. Buying SSDs does not increase RAM. The performance will be better if address the root cause.

Three ways.

1. Can slim down some of these multiple VMs. OS running unnecessary apps for example. (if need Internet explorer than just run it. No other apps, widgets , 'features'. )

2. Turn some of them off. Suspend and resume when really need them.

3. Add RAM.. which in this case means add another machine. Mac Mini isn't really good for a VM consolidation platform. A machine with just two DIMMs slots is the wrong tool for highly concurrent instance consolidation.

The other issue would be just to split the spindles by VM image. Each OS instance gets its own drive. It doesn't necessarily needs to SSDs. For the price of one extra large SSD you could get a HDD and a relatively smaller SSD. Using 3 (or more drives depending upon how many instances you are running) is better than commingling the I/O requests from multiple OS instances onto one bigger drive. In short, you likely need some external drives. Again the limitation of 2 drive bays is a mismatch to doing VM consolidation on the machine.

You can cover up swapping and highly random I/O streams with an SSD but it is just a band-aid; not really a solution.
 
Fusion splits data at the BLOCK level (4kB). So it can sub-divide as much of the VMDKs onto the faster drive as needed.

Slight correction: It splits the data at 128K level, which should match the write page size on the SSD drive. (SSD drives can only write to empty spaces, and they can only erase 128K at a time, which makes copying 4K onto an SSD drive quite inefficient. Copying 128K at a time avoids the problem. And copying data from SSD to HD 128K at a time is also much more efficient).
 
The root cause of the problem is very likely lack of memory; RAM. Buying SSDs does not increase RAM. The performance will be better if address the root cause.

Three ways.

1. Can slim down some of these multiple VMs. OS running unnecessary apps for example. (if need Internet explorer than just run it. No other apps, widgets , 'features'. )

2. Turn some of them off. Suspend and resume when really need them.

3. Add RAM.. which in this case means add another machine. Mac Mini isn't really good for a VM consolidation platform. A machine with just two DIMMs slots is the wrong tool for highly concurrent instance consolidation.

The other issue would be just to split the spindles by VM image. Each OS instance gets its own drive. It doesn't necessarily needs to SSDs. For the price of one extra large SSD you could get a HDD and a relatively smaller SSD. Using 3 (or more drives depending upon how many instances you are running) is better than commingling the I/O requests from multiple OS instances onto one bigger drive. In short, you likely need some external drives. Again the limitation of 2 drive bays is a mismatch to doing VM consolidation on the machine.

You can cover up swapping and highly random I/O streams with an SSD but it is just a band-aid; not really a solution.

RAM right now isn't the issue. I monitor this quite regularly and the issue is running many different things across the VM's. I typically have about 6GB's free, and the 5400RPM drive the Mac Mini comes with isn't doing it.

I'm not looking for making a Fusion drive to be a be-all-catch-all solution. My machine normally runs a two or three vm's at a time, and resources aren't really an issue from memory and CPU standpoint. The issue is usually ML, XP, Win7, and Ubuntu all wanting to write at the same time.

----------

Slight correction: It splits the data at 128K level, which should match the write page size on the SSD drive. (SSD drives can only write to empty spaces, and they can only erase 128K at a time, which makes copying 4K onto an SSD drive quite inefficient. Copying 128K at a time avoids the problem. And copying data from SSD to HD 128K at a time is also much more efficient).

Hmm, if it's doing it all block based then there really shouldn't be any major issues at all.
 
I picked up a Mac Mini with Quad Core, and added 16GB of memory. Plan is to make it a workstation for me to use.

Right now my biggest bottleneck though is from IO when running several VM's in Vmware Fusion.
...
Also with VMWare Fusion set to split VMDK's at 2GB, the most frequently used segments should fit inside of what Fusion Drive looks for as far as optimizing by keeping in the SSD.
The 2 GB segments decrease the read/write performance inside the VM (tested), so i do not recommend them. And the Fusion drive helps only, if you repeatedly read small files, for example from
/System/Library/Frameworks
or
/Applications
That is normally the case, if you open your applications. For the best performance use an internal, non-Fusion SSD or an external Thunderbolt/USB 3.0 SSD, and store your VMs on this SSD.
 
. The issue is usually ML, XP, Win7, and Ubuntu all wanting to write at the same time.

More storage devices solves the problem more so than one big, more expensive one. If there are lots of VM snapshots than capacity is going to be an issue.




----------



Hmm, if it's doing it all block based then there really shouldn't be any major issues at all.

There is a major issue in that all writes in Fusion go to the SSD first. If you are constantly thrashing then you are constantly writing to the SSD. This is also coupled with Fusion trying to fill the SSD to the brim. Constantly writing to a mostly full SSD is bad idea. One (writing) or the other (filled to the brim) can be adjusted for relatively easily by standard controllers. It is likely going to lead to an earlier failure because pragmatically backing the SSD into a corner with abnormal workload.

Each OS has different I/O demands that are clearly distinct. It only gets muddled if aim them all at the same device (virtual or physical).
 
More storage devices solves the problem more so than one big, more expensive one. If there are lots of VM snapshots than capacity is going to be an issue.




There is a major issue in that all writes in Fusion go to the SSD first. If you are constantly thrashing then you are constantly writing to the SSD. This is also coupled with Fusion trying to fill the SSD to the brim. Constantly writing to a mostly full SSD is bad idea. One (writing) or the other (filled to the brim) can be adjusted for relatively easily by standard controllers. It is likely going to lead to an earlier failure because pragmatically backing the SSD into a corner with abnormal workload.

Each OS has different I/O demands that are clearly distinct. It only gets muddled if aim them all at the same device (virtual or physical).

Thanks for the feedback, I think it maybe worth getting a decent sized SSD for OS level stuff, or do the Fusion Drive as it would be fairly inexpensive to setup and then setup a Thunderbolt for bigger files on a RAID-0 setup.
 
Thanks for the feedback, I think it maybe worth getting a decent sized SSD for OS level stuff, or do the Fusion Drive as it would be fairly inexpensive to setup and then setup a Thunderbolt for bigger files on a RAID-0 setup.

One big ssd with a t-bolt raid should work. this case of yours is one that fusion is not as good as a large 250 or 500 gb ssd .. if you could wait for this 960gb ssd from crucial

http://www.crucial.com/store/ProductMarketing_m500.aspx


http://www.anandtech.com/show/6614/microncrucial-announces-m500-ssd-line-of-ssds


this is supposed to cost 600 for 960 gb ssd it is due in may. this would be just what you need.
 
More storage devices solves the problem more so than one big, more expensive one.

Absolutely.

The flash in a fusion drive is just a buffer. Here the issue is that several OSes are contending for resources at the same time. Once in a blue moon you'll get good responsiveness when everything needed is in RAM or the fusion flash, but beyond that you'll have to go to the mechanical disk, and when several OSes are trying to do that at the same time you'll get thrashing and beachballs.

Best to take advantage of that marvelous Thunderbolt bus you have and string several external drives to it. USB 3 might work too but I'd be concerned about its comparative CPU-intensiveness vs. Thunderbolt in an application with multiple VMs running. If you can afford to make the external drives SSD, all the better.

Of course, RAM is another limited resource. Mavericks seems to be pretty efficient at managing it, but then again VMs are pretty efficient at consuming it!
 
So with SSD inside the best is to choose a pre allocated disk without 2GB splitting?

Fusion drive doesn't care about that at all. It doesn't see any files; it only sees individual block operations. So whatever is best for a non-fusion drive is best for a fusion drive as well.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.