VMware Communities
MPC67
Contributor
Contributor

Performance of Fusion, Mac Pro, SSD/HDD

Hi,

I've been running a 27" iMac i7 for the past 4.5 years using Fusion. With Fusion, I primarily run a Win 7 VM for business 12 hours per day. I also tinker with other VMs.

I'm in the market for a new computer and really want as much horsepower ("HP") as possible to run Fusion and Win 7 (eventually Win 8). I was thinking about getting the new Mac Pro ("MP"). I was wondering if I would see much performance difference between the 4/6/8 core Mac Pros? I understand that I could allocate more cores to the VM if I get an 8 core MP, which I believe should give me more HP. Do you think the VM would run any faster with an 8 core MP vs a 4 core MP, for example?

Also, I was wondering if it's wise to run the VM off the SSD that comes in the Mac Pro, or, would I be better off running the VM off a traditional HDD? I believe that a SSD would be faser, but I just read this -> "One big problem of SSDs is inherent in flash memory itself: it can only sustain a finite number of writes before it dies. There is a lot of science that goes into explaining why this happens, but suffice it to say that as the SSD is used, the electrical charges within cells must be periodically reset.".

I'm looking to place an order ASAP this week and would appreciate any knowledgeable feedback ASAP.

Thanks...  Michael

0 Kudos
16 Replies
MaciekP
Enthusiast
Enthusiast

GO with SSD. No comparison to old HDD.

if third party, samsung 850 pro have 40nm 3d cells, very reliable, 10 years warranty

0 Kudos
MPC67
Contributor
Contributor

Thks for your reply.

The 1TB SSD is an option that is built into the Mac Pro. I wonder if that SSD is made by Samsung.

Any idea about my question re the cores?

0 Kudos
ColoradoMarmot
Champion
Champion

There's been a lot more fear about SSD life than has shown up in practice.  I don't have the link handy, but the last test showed that consumer SSD's can handle in the petabyte range before failing.  Go with SSD's, and do regular backups.  You'll be much much happier.

Unless you're running very specialized software, more than 2 cores for the VM is probably a waste (and may actually slow it down).  Remember though, you need to always leave 1 for the host OS, so on a 4 core machine, you should give no more than 3 cores to any individual VM (virtual cores/hyperthreading doesn't count in this case).

One thing though - multi-core performance on the MacPro is tops, but for single core performance, the new iMac is fastest.

What are you planning to run in the virtual machine?  If it's offfice productivity stuff, then even 1 core is probably sufficient - and you'll get MUCH more bang for the buck with an SSD than with a CPU upgrade.

0 Kudos
MPC67
Contributor
Contributor

Thks for your good input.

Noted re SSD.

Re the cores, on my iMac i7 I run 2 cores to the Win 7 VM and 2 to the host. I was under the impression that, if I got an 8 core Mac Pro, I would dedicate 4 cores to the VM and 4 to the host. I also have a 4 core, i7 HP that runs a lot faster than my "2 core" VM. I was expecting 4 cores to a VM to run similar to the i7 HP running the same OS (Win 7). Is my expectation accurate - 4 cores of 8 cores on Win 7 VM would run similar to HP i7 running Win 7?

I really want the fastest I can get on the VM, since I use it for work all day. I thought 4 of 8 cores would do the trick. Pls advise...


Thks,  Michael

0 Kudos
geekzero
Enthusiast
Enthusiast

Depending on how much you actually use multiple cores simultaneously, the 4.0GHz retina iMac could be faster than the base Mac Pro.  See http://www.macrumors.com/2014/10/20/apple-core-i5-retina-imac-benchmarks/ for details.

You can get the retina iMac with up to 1T of really fast SSD, PCIe connected same as the Mac Pro.  My observation: this thing is FAST.  And of course you get the stunning 5K screen.  One suggestion, if you're going to run an external monitor from the retina iMac, get the 295X video card, it helps.

0 Kudos
wila
Immortal
Immortal

dlhotka wrote:

There's been a lot more fear about SSD life than has shown up in practice.  I don't have the link handy, but the last test showed that consumer SSD's can handle in the petabyte range before failing.

My guess is that you are talking about this article:


The SSD Endurance Experiment: Casualties on the way to a petabyte

--

Wil

| Author of Vimalin. The virtual machine Backup app for VMware Fusion, VMware Workstation and Player |
| More info at vimalin.com | Twitter @wilva
0 Kudos
vmxmr
Expert
Expert

Hey Michael,

What everyone is trying to tell you is that having more cores (whether on your Mac or assigned to your Windows guest) doesn't matter if the software you are running does not take advantage of the extra cores. In fact, more cores can have a negative impact on performance. If you are running certain software (typically art, animation, video, media, etc.) having multiple cores can make a big difference. Most of these programs come in a Mac version, so there is little reason to run them in a virtual machine.

You can also benefit from multiple cores if you are running several compute-intensive programs simultaneously - such as various kinds of scientific modeling/simulation software with large data sets, or maybe the next Amazon or eBay with lots of simultaneous connections and inputs. That doesn't include typical office programs, email, etc. Those programs may be "running" at the same time, but they sit there and do nothing, waiting for your next input. More RAM may yield better "performance" if you leave a lot of ordinary programs running at the same time, so they are ready in RAM (not swapped out) when you activate them.

Cores are not additive in a linear fashion. Each additional core adds less real processing power than the previous core. There is a penalty cost to each additional core. As others have pointed out, sometimes a system with fewer cores may do your work faster than one with more cores. For the new Mac Pro, the base clock speed of the higher core versions is actually lower than the versions with fewer cores. (4-core: 3.7 Ghz, 6-core: 3.5 Ghz, 8-core: 3.0 Ghz, 12-core: 2.7 Ghz). The clock on those mutli-core processors can run faster when some cores are dormant, but I wonder whether running a multi-core virtual machine may be a perfect example case that forces the processor clock to run slower even when it is not doing much. An 8-core Mac Pro may run your Windows virtual machine slower than the comparable 4-core Mac Pro because the base clock speed is lower. In practice, any Mac Pro will run very fast. I wonder whether you would perceive any real-world difference.

--> It would help if you would share with us what you plan to do with your new Mac and what programs you run in a typical day on your business Windows virtual machine.

If you have money to burn and want the latest toy, by all means treat yourself to an 8-core Mac Pro. They look sexy, and your Mac friends will admire it. I doubt that the higher expense of the extra cores will make a real-world difference, but whatever you get will run screamin' fast and you won't notice. If you whisper to your partner that the extra cores and expense will make a huge difference for your business productivity, we promise not to dispute it in front of them. Perhaps your business accountant can minimize the real-world cost of the higher expense.


Remember that nothin' depreciates faster than new computers, not even cars. When Apple releases that new four-processor 48-core Mac Pro next year, please send me your obsolete 8-core Mac Pro. I promise it will live in a happy home and I will put it to good use. 🙂

0 Kudos
MPC67
Contributor
Contributor

Hi VMXMR,

Thks for your wonderful, insightful and detailed explanation. I never received a notice in my inbox advising that you replied to my post. I only noticed it today when I visited the post.

The money is not that much of an issue, as much as performance. I'm willing to pay for anything, as long as I see a benefit and it makes my work more productive.

I've been running an iMac i7 for the past 4+ years, with 4 cores dedicated to the VM and 4 to the Mac. Fusion setting shows eight cores, I split in 2. I've been round and round over the years with VMW Tech Support re allocating 4 cores in their settings, and always the same ending. They start out by saying, allocate only 2 cores in the settings. I try only 2 cores and the VM slows down tremendously, sometimes even freezes. I keep at 4 cores, and it seems to run ok. I explain to them that their settings allow up to 8 cores (4 physical cores and 4 hyper-threading), of which I select 4 cores (essentially, 2 physical cores). They reply, OK to use in that capacity. What do you think???

Having said the above, my expectation is to get an 8 core MacPro, so I can allocate full 4 physical cores to the VM (i.e. 8 cores, of 16 cores, in the VM settings). Do you think I should go with a 6 core, or an eight core MP?

My primary use for the new MP is running VMs and some modest video, picture, music editing on the Mac side. I also want the portability of a MP, so I can hook it up to a TV in my motorhome for work. That way, I won't have to schlep the 27" iMac screen around with me. I can just take the compact MP and HDMI it to the TV. I have NO Mac friends to impress. What will impress me is if the MP lives up to my expectations of speed for my VMs. Fortunately, I have NO partners, or others to answer to - just lil ol' me.  🙂    According to my accountant, I can expense the whole item this year. I'll keep you in mind when I scrap the MP.  LOL  😉  However, I don't scrap pc's but every 4+/- years. So, there will be a wait...  LOL

Appreciate your reply,

Michael

0 Kudos
geekzero
Enthusiast
Enthusiast

No matter what you allocate, the CPU will always try to use the "hard" cores before the HT (hyperthreaded, or soft) cores.  So if you have an eight physical core MP, allocating four cores in VMWare will get you those four physical cores unless you have something really going hard on the Mac side that uses up the other physical cores. 

One reason to stick with the "hard" cores is they'll run faster as the overall chip temperature won't be as high as when all hard+HT cores are cranking.  The recent Intel chips have temperature-aware speed surges possible, and you'll be able to take advantage of that with the Xeons in the MP very effectively.

Here's a handy page showing, in this case, the differences between the 6-core and 8-core CPUs in the MP: http://www.cpu-world.com/Compare/406/Intel_Xeon_E5-1650_v2_vs_Intel_Xeon_E5-1680_v2.html

And the 8 vs 12: http://www.cpu-world.com/Compare/418/Intel_Xeon_E5-1680_v2_vs_Intel_Xeon_E5-2697_v2.html

To me the tradeoffs: the more you'll use multi-core, the more the 12-core makes sense.  On the chip are some really powerful optimizations for making the multi-core work better in the 12 than in any below it.  However the per-core speed is less, so if you have things that would be speed limited in single core mode, that may not be the best choice for you.

Though it's really hard to go wrong with a MP.  The speed that comes from the PCIe connected Flash storage is just amazing.  And if you need to get more storage, there are some blazing fast external choices, up to 1375MBps leveraging the TBolt 2 speeds.  I'm using one of these http://www.newegg.com/Product/Product.aspx?Item=1E8-000H-00035&cm_re=lacie_little_big_thunderbolt_ss... on my iMac Retina to store my Virtuals - and oh my, what an amazing difference having that much speed. 

0 Kudos
vmxmr
Expert
Expert

Hi Michael,

See geekzero's excellent reply above. His links provide useful information, but must be interpreted in the context of how the CPUs are used.

You're welcome. Unlike some forums that automatically subscribe you to a thread for email notifications, I believe the VMware forum does not. You must click "Receive email notifications" on the upper right side of the thread. I notice that it seems to turn off sometimes for no reason.

I hope other people join in, because I cannot explain the performance results for your quad Core i7 iMac that you described. I would have said the same thing as the VMware Tech Support people - allocate two cores for best performance, because otherwise your VM would contend with Mac for resources, potentially blocking each other in an almost-deadlock situation. Based on your description, obviously that is not happening, and I am at a loss to explain it. I do not understand what you could be doing with your Windows guest that requires so many cores. Could it be a memory issue or some other issue, rather than cores?

I do not agree with your assumption that if you allocate 4 cores to your VM, that it is "essentially, 2 physical cores". You appear to be assuming that if you give your VM 4 processor cores that they translate into 2 physical, 2 hyper-threading on your Mac. It doesn't work that way.

The first thing to understand is what the Processor Cores setting actually does. It configures the virtual machine "hardware" so that the Windows guest operating system believes that a certain number of processor cores are available. As Windows runs, it schedules processes and threads according to the number of processor cores in that setting. If you configure your Windows guest with a single processor core, then the Windows operating system will schedule processes and threads to run sequentially. If you configure your Windows guest with more than one processor core, then Windows may schedule processes and threads to run in parallel, assuming that more than one are available to run. At that point, it is up to VMware and OS X to figure out how to execute them. Even if Windows schedules some processes to run in parallel, VMware and OS X may not be able to accommodate it with real Mac cores (depending on what else is running on the Mac). As far as I know, there is no way to tell in advance whether Mac cores allocated to your VM are physical or hyper-threading. The truth is that they are dynamically allocated by the Mac as your VM runs. Keep in mind that VMware core assignments are somewhat independent of the Mac's actual cores.


I wish I could answer your question about how many cores to buy, but you never answered the question about what you run on your VMs. If you run primarily office applications, then it won't matter. You said that you run "modest video, picture, music editing" on the Mac side. Some of those applications can take advantage of more cores, but you said "modest". Allocating more cores to the VM would be the opposite of what you want to do if your modest Mac video, picture, music editing programs can use more cores.


You asked whether you should buy six cores or eight cores for best performance. The problem is that we still do not know what you do with your computer, either now or in the future. My gut says that your needs are very modest, so fewer cores will get you a faster base frequency, which means that each individual process runs faster.


Having 6 cores at 3.5 Ghz will be 14% faster than 8 cores at 3.0 Ghz. (Unfortunately, it isn't as simple as that, but you get the idea.) As long as what you run stays under 6 processes simultaneously most of the time, then the 6 core CPU will be faster. Having the extra two cores only helps if you actually use them, and my best guess tells me you won't. (... and let's not forget about how hyperthreading can help if you actually use 6 (or 😎 cores.

A new Mac Pro will be amazingly faster than your four year old iMac. The SSD will make a huge difference over a hard drive. I believe that six cores will be faster for your needs than eight cores, but I truly wonder if you could feel the difference anyway.


Since cost is not an issue, then maybe your time is so valuable that you are wasting a fortune analyzing the situation. Flip a coin. 🙂

0 Kudos
ColoradoMarmot
Champion
Champion

This comes up periodically - for virtualization purposes, only physical cores count - so no single VM should be given more than N-1 physical cores in the host machine, but you can run multiple N-1 VM's on the same box (For example, I regularly run 4-5 2-core VM's on my 4-core MBP).

0 Kudos
MacsRule
Hot Shot
Hot Shot

dlhotka wrote:

This comes up periodically - for virtualization purposes, only physical cores count...

Having read through this very informative thread, I confess to some confusion on how Fusion treats available cores.

I'm running Fusion 7 on a 6 core 2010 Mac Pro, and in the "Processors & Memory" setting, I'm given the choice of one through twelve cores to assign to the VM. The OS X system log shows that of a possible 24 processors that the logic board might expect to see, 12 Processor Id's are actually enabled (0 to 11), with LocalApicId's numbered 0 through 5 and 16 through 21. In a Windows 7 Pro VM, I've assigned 4 of the 12 cores offered in Processors & Memory. With Windows XP Mode running inside the Win 7 VM (Enable hypervisor applications is checked) nearly 350% CPU usage is sometimes shown for the vmware-vmx process, and just booting Win 7 briefly shows about 400% CPU usage according to Activity Monitor (in Mountain Lion, when Activity Monitor was more usable than it is now).

On occasion, I've used Mac photo-editing software which will show 1,150% CPU usage (Fusion isn't running) with the expected substantial jump in operating temperature.

Is Fusion only going to make use of physical cores despite offering me up to twelve, or can it use the available hyperthreading if the VM activities call for it?

0 Kudos
ColoradoMarmot
Champion
Champion

I'm not sure why Fusion offers more than the physical number of cores (or why it doesn't warn you if you assign more than N-1).  It's been a while, but the last time I talked with a VMWare engineer about it, the recommendation for N-1 was still in place.

0 Kudos
MacsRule
Hot Shot
Hot Shot

dlhotka wrote:

I'm not sure why Fusion offers more than the physical number of cores (or why it doesn't warn you if you assign more than N-1).  It's been a while, but the last time I talked with a VMWare engineer about it, the recommendation for N-1 was still in place.

That photo-processing software I mentioned has a Windows version too and it will process one image per available core if it has enough to work on. I'd try giving the Windows VM 10 of the available cores to see what happens but I suspect Windows would get upset and demand re-validation if I tried it. Do you know if Win 7 Pro was engineered to make use of more than four processor cores if they were available in a physical PC?

0 Kudos
geekzero
Enthusiast
Enthusiast

From this page http://windows.microsoft.com/en-us/windows7/products/system-requirements :

PCs with multi-core processors:
Windows 7 was designed to work with today's multi-core processors. All 32-bit versions of Windows 7 can support up to 32 processor cores, while 64‑bit versions can support up to 256 processor cores.

PCs with multiple processors (CPUs):
Commercial servers, workstations, and other high-end PCs may have more than one physical processor. Windows 7 Professional, Enterprise, and Ultimate allow for two physical processors, providing the best performance on these computers. Windows 7 Starter, Home Basic, and Home Premium will recognize only one physical processor.

0 Kudos
dariusd
VMware Employee
VMware Employee

We offer the number of logical cores in the processor because we can readily run VMs with up to that number of virtual cores, within certain constraints. 🙂

On our hosted products (WS/Player/Fusion), we depend on the host to schedule the threads of execution.  The host OS's scheduler should do a good job of that.  (should)

Regardless of whether the guest OS thinks it has separate physical processors (sockets), physical cores or logical cores, at the level of the host OS it is just a thread of execution, and when the guest has work to do it will be scheduled onto a host core mostly just according to the whim of the host OS's scheduler, as far as I'm aware.

The host OS might try to optimize for energy and keep entire cores clocked way down, in which case your first two active threads of execution might end up being scheduled on HT "twins" of the host's processor (with a corresponding performance hit), or the host OS might try to optimize for performance by moving each thread of execution to separate physical cores and only start using the HT "twins" when there is already enough work to saturate one "twin" of each physical core.  The host OS is free to migrate threads between host logical cores as it sees fit.

On hosted products, we only consume CPU time on the host processor when the guest OS schedules work on a virtual processor core, so a 12-virtual-core VM on a 12-logical-core host will still leave ample processor time for the host to do its own work when the guest is not busy.  It only becomes a problem when there is a lot of work being done inside the guest (sufficient to saturate all the virtual cores), at which point the host OS's scheduler might find it difficult to schedule the host OS's own CPU needs (increasing latency system-wide), and we will need to do extra work to compensate for the time being "lost" to the host.

There is no universal rule or even universal recommendation... it depends on the workloads you intend to run in the virtual machines.  I often run multiple virtual machines with core counts that sum up to more than the core's logical core count, but I understand that if I ask some of those VMs to do a lot of work, the host will struggle to schedule the work across the available cores, and things (virtual and physical) will slow down substantially.  (Similarly for memory allocation and I/O bandwidth.)  Some workloads work best with only one core, some with one fewer than the number of physical cores (workloads which make heavy use of silicon shared between HT twins), and some with one fewer than the number of logical cores, and I'm sure even some will work best with some arbitrary number in between. Smiley Wink

--

Darius

0 Kudos