How to Improve Fusion VM Performance

Discussion in 'Mac Pro' started by Moof1904, Aug 16, 2014.

  1. Moof1904 macrumors 65816

    Joined:
    May 20, 2004
    #1
    I have a "standard" Mac Pro 2008 (3,1) with the RAM upgraded to 12 gigs. It has the stock ATI Radeon AT2600 XT 256 video card.

    A long-term project requires that I run Windows 7, which I'm running on a VMWare Fusion 6.0.2 vm to which I've given the 2 gigs of RAM that the VMware settings dialog suggests. The vm is on a spindle drive (WD Black) that's separate from the SSD that contains the MacOS.

    The Win 7 performance is adequate but I want it to be snappier. I need to run the vm at my 30" ACD's native 2560x1600 resolution and the response from Windows when launching apps or dragging windows just seems a bit sluggish.

    Activity Monitor on the Mac doesn't show any issue with RAM or CPU usage.

    I don't want a dedicated, standalone PC for a bunch of reasons. The vm is "almost there." I just want to improve its performance. I'm going to spend time on the VMware forums to figure out the optimal settings for the VM, but on the Mac side I have a little bit of money to throw at the problem, but not a bunch. So I want to focus on the most improvement for my money. How would you rank the following in terms of benefit to the Windows vm's performance? I can probably do one or two of the following:

    -Adding RAM to the Mac so that I can allocate more RAM to the VM
    -Upgrading the Mac's video card
    -Moving the vm from the spindle drive (WD Black) that it's on to an SSD
    -Something else I'm not thinking of
     
  2. paulrbeers macrumors 68040

    Joined:
    Dec 17, 2009
    #2
    SSD is probably your biggest bottleneck followed by the only 2gb of RAM allocated. I'd recommend moving the VM to an SSD first, then cranking up the RAM to 3 or 4 GB. If the latter has a positive affect, and OSX is now RAM starved, only then would I add RAM to your system. You might find that OSX runs just fine with only 8GB available (other 4 tied up in the VM).

    SSD would probably help the most.

    Also make sure vt-x is turned on (which I am 99 percent sure your procs support)...
    http://www.virtualizationadmin.com/blogs/lowe/news/vmware-fusion-5-enable-vt-xept-inside-a-virtual-machine-288.html
     
  3. AidenShaw, Aug 16, 2014
    Last edited: Aug 16, 2014

    AidenShaw macrumors P6

    AidenShaw

    Joined:
    Feb 8, 2003
    Location:
    The Peninsula
    #3
    Definitely give the VM at least 4 GiB of RAM. Even if it seems "wasted", the extra RAM will be used for filesystem caches - which definitely helps "snappiness". (To see how much is in cache - "Start" -> "Administrative Tools" -> "Performance Monitor", then click the "Open Resource Monitor" link and go to the "Memory" tab. The "Standby" memory is mostly filesystem cache.)

    Check the memory for the video card in Windows (right-click on desktop, "Screen Resolution" -> "Advanced Settings"). You should see something like the attached image.

    You have installed VMware Tools in the guest, right? That is vital.

    You need to make sure that VT-x is enabled at the BIOS level on the MP3,1. Also make sure that virtualization engine is automatic for the VM setting (picture)

    The link is unrelated - it describes how to run VMs within a VM.
     

    Attached Files:

  4. stjames70 macrumors member

    Joined:
    Jul 5, 2009
    #4
    vt-x and Win 8

    Hi,

    I did not know about vt-x, but I will be sure to enable it.

    I also run the exact same 3,1 setup with a 30"ACD.

    I have 16gb, half dedicated to the VM. I have two SSD's -- one for OSX and the other for the VMs.

    Your video card is a bit underpowered, but that probably doesn't make much of a difference.

    I would switch to Win 8. It is 'snappier' than Win 7 -- Win 7 wastes a lot resources for graphics and I am not sure what other overhead, but after installing Win 8 in six of our vintage 2009 iMacs and our other 3,1s in the office, those computers ran much faster VMs than XP Pro. They could barely run Win 7 in any iteration -- with or without Aero graphics. My conclusion, unscientific, is that Win 8 is more efficient and requires less resources than Win 7 so it will run in a lot more rudimentary hardware than Win 7 -- which is basically what you have with a VM.
     
  5. Moof1904, Aug 16, 2014
    Last edited: Aug 16, 2014

    Moof1904 thread starter macrumors 65816

    Joined:
    May 20, 2004
    #5
    These are great suggestions, everyone. Thank you!


    ---A few minutes later---
    It looks like vt-x isn't supported by my hardware. VMware let me change the setting but threw an error when I started the vm.
     
  6. paulrbeers macrumors 68040

    Joined:
    Dec 17, 2009
    #6
    http://support.apple.com/kb/TS2744

    Yeah, you are right. While the Xeons in the 3,1 support VT-X, they do not support VT-X w/ EPT. Sorry my bad!
     
  7. AidenShaw macrumors P6

    AidenShaw

    Joined:
    Feb 8, 2003
    Location:
    The Peninsula
    #7
    These posts say how to enable VT-x on those systems - you need the latest BIOS firmware.

    VT-x is the largest leap in performance - so if you can get that running you should see a difference.

    By the way, the MP6,1 has a bug in VT-x(EPT). It needs to be disabled in the VM settings. (Note that a BIOS update can work around the bug - please correct me if Apple has updated the MP6,1 BIOS with the fix.)
     
  8. paulrbeers macrumors 68040

    Joined:
    Dec 17, 2009
    #8
    The 3,1 processors support vt-x but not EPT. VMware requires EPT therefore it doesn't matter if there is support for vt-x since the silicon doesn't support EPT.
     
  9. AidenShaw, Aug 17, 2014
    Last edited: Aug 17, 2014

    AidenShaw macrumors P6

    AidenShaw

    Joined:
    Feb 8, 2003
    Location:
    The Peninsula
    #9
    VMware Workstation definitely supports all variations of VT-*, and lets you tune them if you want. (And I enable VT-x and disable VT-x(EPT) because of the bug in all IvyBridge Xeons.)

    Are you saying that Fusion is missing a basic feature (VT-x support) that is supported in VMware's platforms on Linux and Windows?
     

    Attached Files:

    • ve.jpg
      ve.jpg
      File size:
      16.4 KB
      Views:
      838
  10. paulrbeers macrumors 68040

    Joined:
    Dec 17, 2009
    #10
    Yes, VMWare Fusion for Mac requires VT-x/EPT. Directly from their documentation for Fusion 6.0:

    Verify that the host system has a CPU that is recent enough to support Virtualized Intel VT-x/EPT, performance counters, or both. For example, host CPUs that support advanced options include Intel CPUs based on the Nehalem, Westmere, or Sandy Bridge microarchitectures. With the current Intel naming convention, these processors include Intel Core i processors, such as Intel Core i5.

    Therefore, the processors in the 3,1 (since they are Core2duo based Xeons) do not have EPT which is a requirement to use that function in Fusion. Fusion does not support VT-x only.
     
  11. AidenShaw, Aug 19, 2014
    Last edited: Aug 19, 2014

    AidenShaw macrumors P6

    AidenShaw

    Joined:
    Feb 8, 2003
    Location:
    The Peninsula
    #11
    I'm still confused - https://www.vmware.com/support/fusion/faq/requirements.html#system_requirements says:

    System Requirements
    The minimum system requirements for installing and using VMware Fusion 6 are: Any 64--bit capable Intel® Mac (Compatible with Core 2 Duo, Xeon, i3, i5, i7 processors or better)​

    You are again quoting the requirements to run nested VMs (running VMware in a guest, with the guest being the host for additional VMs).

    Here's the link that you quoted: http://pubs.vmware.com/fusion-5/ind...UID-38178690-1234-4843-B135-4063F9AA73E4.html

    Note that the OP is already running Fusion on the 3,1 - he just wants it to be faster!
     
  12. paulrbeers macrumors 68040

    Joined:
    Dec 17, 2009
    #12
    Good grief! Yes it can be run on any Intel Mac (sans the 32bit only). His question was around WHAT SETTINGS! I said originally to turn on vt-x but then later recanted because it takes a processor with vt-x/EPT. Therefore you CANT turn on VTX/EPT with a 3,1. They can only do VT-X (sans EPT). I run Fusion on even my 1,1. That was never the question. *facepalm*
     
  13. goMac macrumors 603

    Joined:
    Apr 15, 2004
    #13
    I've never had these problems on my 3,1.

    Just checking, but the VMWare tools are installed, right? Otherwise performance might be handicapped.

    I also make sure to give Windows 7 plenty of RAM. 4 gigs is a good amount. If you don't have spare RAM on your computer, add more. 2 gigs isn't much for Windows 7.

    Windows 7 in VMWare Fusion for me feels pretty much native, except for slower game performance. I've used it for Visual Studio projects before, no problem.

    Running off of a WD black should be totally ok.
     
  14. AidenShaw macrumors P6

    AidenShaw

    Joined:
    Feb 8, 2003
    Location:
    The Peninsula
    #14
    Moof - you haven't directly answered the question of whether VMware Tools are installed in the guest. The tools give a huge performance increase for many things.

    How did you "enable VT-x"? The first link from paulrbeers was misleading - you should not have followed those instructions.

    Do you have the latest BIOS installed on the system? The link http://support.apple.com/kb/TS2744 implies that some early BIOS versions did not enable VT-x.
     
  15. Moof1904 thread starter macrumors 65816

    Joined:
    May 20, 2004
    #15
    Follow-up

    Thanks again, Gang, for your responses. Here's some follow-up info:

    -I have been running VMWare Tools. Currently it's version 9.6.2.1688356.
    -The Mac Pro has the latest BIOS installed, per Apple's tech note. I did that years ago when it was released.
    -The only way I know to enable VT-x is to go to the virtual machine settings in Fusion, choose Processors and Memory, and check "Enable hypervisor applications in this virtual machine." Doing this causes Fusion to throw the previously described error when launching that VM ("Virtualized Intel VT-x/EPT is not supported on this platform. Continue without…?". If there's something different I should be doing, I'd love to know.

    Also, I dug through my couch cushions and found enough pennies to throw 8 more gigs of RAM into the Mac and move the virtual machine to an OWC SSD drive. I just did that this morning and I can tell a difference. Windows now has 4 gigs of RAM (the Mac has a total of 18 gigs, so I could give Windows more, if necessary).

    The only thing now is optimizing settings within Windows and any additional Fusion settings that may make a difference. I welcome feedback there.

    Thanks again.
     
  16. AidenShaw macrumors P6

    AidenShaw

    Joined:
    Feb 8, 2003
    Location:
    The Peninsula
    #16
    Thanks for confirming.


    That setting is unrelated to running the guest with VT-x.

    If you look back at my screen shot from VMware workstation, the "Virtualization Engine" is a property of the "Processors" in the "Hardware" section. It should be "Automatic" unless you have an MP6,1.

    Here's the relevant documentation: http://pubs.vmware.com/fusion-5/ind...UID-38178690-1234-4843-B135-4063F9AA73E4.html

    The more memory you give Windows, the less I/O it will do. Try 8 GiB.
     
  17. Moof1904 thread starter macrumors 65816

    Joined:
    May 20, 2004
    #17
    Is it possible that we're seeing a difference in the available settings between VMWare Workstation and Fusion? I have Workstation at my work (a Windows environment) and I see the same settings reflected in your screenshot. However, the settings available in Fusion are not quite the same. Here is the equivalent screen in Fusion:
     

    Attached Files:

  18. AidenShaw macrumors P6

    AidenShaw

    Joined:
    Feb 8, 2003
    Location:
    The Peninsula
    #18
    Here's the documentation:

    Note that it says:
     

    Attached Files:

    • vt-x.jpg
      vt-x.jpg
      File size:
      270.6 KB
      Views:
      214
  19. Moof1904 thread starter macrumors 65816

    Joined:
    May 20, 2004
    #19
    Found it! Thanks. I was looking under Settings > Processors and Memory, not Settings > Advanced.

    Should I choose Intel VT-x or Intel VT-x with EPT (Early Pregnancy Test?)
     
  20. AidenShaw macrumors P6

    AidenShaw

    Joined:
    Feb 8, 2003
    Location:
    The Peninsula
    #20
    Your processor doesn't support EPT (Extended Page Tables).

    Force it to VT-x - if it throws an error you need to look at hardware settings. (Most Intel BIOS screens have an enable/disable VT-x setting.)
     
  21. Moof1904 thread starter macrumors 65816

    Joined:
    May 20, 2004
    #21
    Forced it to VT-x with no errors (rebooted Windows to be sure).

    Thanks again for the suggestion. One last question: What makes this faster than the "automatic" setting? Shouldn't automatic use VT-x when it's advantageous to do so?
     
  22. AidenShaw macrumors P6

    AidenShaw

    Joined:
    Feb 8, 2003
    Location:
    The Peninsula
    #22
    If VT-x had been disabled, then forcing it would have caused an error.

    Now that you've verified that it's working, automatic is just as good.

    Don't use automatic on an nMP, however.
     
  23. dyn macrumors 68030

    Joined:
    Aug 8, 2009
    Location:
    .nl
    #23
    Fusion supports 3 kinds of virtualisation:
    1. no vt-x at all aka binary translation
    2. ordinary VT-x
    3. VT-x with EPT

    If you want to run a 64 bit guest OS the use of VT-x is mandatory (no VT-x means that you can not run a 64 bit guest OS). The Core 2 Duo and equivalent Xeon procs fulfil this requirement. If you want to run a 32 bit guest OS than the use of VT-x is not required nor recommended. VMware has a very efficient own virtualisation engine for this called binary translation. They ran some tests to see if enabling VT-x speeds things up but it did the opposite or nothing at all. I think it was this paper: A Comparison of Software and Hardware Techniques for x86 Virtualization (pdf).

    Fusion will pick the right virtualisation engine automatically. You really shouldn't set this manually unless you know exactly what they all mean. The same applies to any of the other settings in the "Advanced" tab of the VM settings as well as the advanced settings in the cpu & memory tab: don't change those unless you exactly know what they are for. Since you clearly don't, leave them as they are!

    If you want to run ESXi or Hyper-V as a VM to test them out or because you want to demo them to a client then you can use these settings. They'll enable a few things among VT-x with EPT in order to be able to use a hypervisor (ESXi, Hyper-V) in a VM. If you even bothered to read the help (click the ? button) you'd have known this since it clearly states what these settings are for.

    An old Mac mini early 2009 with a Core 2 Duo cpu will do VT-x (enabled in the EFI by default) and binary translation without any problems. It won't do VT-x with EPT. I have such a Mac mini running Yosemite PB2 and it runs Fusion 6.0.4 without any problems. The Windows 8.1 Enterprise vm is 64 bit so it uses VT-x and it runs fine (albeit a bit slowly, the C2D isn't as fast as the Core i5 that came after it and has far better VT-x support).

    Back to your original question: make sure you assign as less as vCPUs as possible and put the vm on the fastest disk (the ssd). If that still isn't fast enough you'll have to move to faster (newer) hardware.
     
  24. Yebubbleman macrumors 68030

    Yebubbleman

    Joined:
    May 20, 2010
    Location:
    Los Angeles, CA
    #24


    Do you have a 4-core or an 8-core Early 2008 model?

    If you have an 8-core, consider giving your VM 3 or 4 cores instead of 2.

    If you intend on keeping that Mac Pro around for a while, I'd upgrade the video card on principle; ATI Radeon HD 2600 XT's are somewhat unreliable over time, plus, by today's standards (and what new OS and software features leverage the GPU but don't support that card), that card is old. I'd try to find a Radeon HD 4870 (if you don't care about having a second video card), a Radeon HD 5770 (if you do care about having a second video card), or I'd delve deep into the "Flashing a standard PC graphics card for use in a Mac Pro" modding sub-culture and get a card that will work with your Mac, but be substantially more modern and more powerful than even the Radeon HD 5870 (which was the newest/highest Apple-made/supported video card for ANY tower-based Mac Pro). That said, I don't believe any of that will matter for your VM; I digress.

    VMs are RAM hogs. Even if your VM isn't using all 2GB of RAM, that RAM is still in reserved for use by your VM. 12GB of RAM isn't much anyway. I'd up that and then up your VM to 4GB. It sort of depends on what you're doing in Windows anyway. Any particular reason why you're not using Boot Camp instead? You know that you can also virtualize a Boot Camp Partition so you can have the best of both worlds, yeah?
     

Share This Page