VMware Communities
swineone
Contributor
Contributor

Unacceptably slow shared folders performance

I have a MacBook Pro 15" late-2013 with a 512 GB SSD, 16 GB RAM and a Core i7 2.6 GHz CPU, running VMware Fusion 8. The host OS is OS X 10.10.5 (Yosemite) and the guest OS is Windows 10. My main use case for the VM is software development, and I have Microsoft Visual Studio 2015 installed on it, on which I use a plugin called VisualGDB (www.visualgdb.com), and there is a severe performance issue with my setup, which is severely dragging down my productivity. Here I should mention this is definitely not an issue with VisualGDB itself, and would most likely happen just the same with ordinary Visual Studio projects, it's just that I don't code in C# or VB to test a project in one of those languages.

Using VMware's built in sharing facilities, I shared my home folder from the host OS to the guest OS. I keep all my software projects in my host OS's home folder, and I access it from within Visual Studio using the shared folder.

The issue is this: performing a rebuild (Build menu -> Rebuild Solution in Visual Studio) of one of my projects over the shared folder takes 38 seconds (in another test, this took as long as 48 seconds; of which 15 seconds are spent just cleaning the project folder, which consists solely of deleting a number of files that's not more than a hundred). Now if I copy the project folder somewhere inside the Windows C: drive and perform the same rebuild when opening the project from there, it takes less than 7 seconds. The funny thing is that copying the project from my shared folder to the Windows C: drive takes about a second or two, I can't even time it accurately -- so why should accessing the same files from within VS be so slow? This is a 5.5x difference and is making me lose something in the vicinity of one hour every day waiting for compiles to finish. Even creating a network share from within Mac OS X (System Preferences -> Sharing -> File Sharing) is much faster than this at about 12 seconds; this is my preferred solution for now, but frankly I don't see just deleting less than a hundred .o files and reading in another hundred .c files should take an extra 6 seconds just because the file is on a shared folder (which is, of course, accessed over a loopback connection, so that no bytes are ever put on a physical wire, and the latency can probably be measured in microseconds).

Please note that, for various reasons related to my split Windows-Mac workflow, just copying the files to the C: drive instead of accessing them via the shared folder is not an acceptable solution. They must be kept in the shared folder at all times.

Are there any settings changes, or in general anything that I can do to speed up I/O operations on shared folders?

37 Replies
wila
Immortal
Immortal

Gosh I wish all of my projects compiled within 38 seconds Smiley Wink

This is not exactly the best use case for VMware Shared Folders, although I understand you want to use it that way.

Things that might slow down host guest file system access is among others to make sure that your antivirus is not checking your shared folders.

I've also seen that huge amounts of small files can clog down performance of the shared folders.

Another thing which is possible is to disable the refresh mechanism that checks if the file has changed. This will not help your use case as you most likely depend on Visual Studio detecting that a file was updated.

If you really want to stick to this kind of setup and not use for example source code control to check in changes into a repository (which is my preferred solution to handle this) then you are better off using industry standard file sharing mechanisms like Samba.

--

Wil

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

So, thank you for saving me from my annual Fusion re-evaluation, I guess. I'm in the same boat as you, for several years now, and every year I hope VMware will fix the hgfs driver to perform reasonably with Visual Studio. I wrote about my experience in more detail here:  https://communities.vmware.com/message/2422281#2422281‌ — as I write there, I grumblingly switched to Parallels to fix this problem.

wila, you may think this is not "best use" of shared folders, but it is darn practical for us cross-platform developers — and when I say that, I really mean absolutely essential because any other setup would be  a bit of a nightmare. And the fact remains that Parallels' equivalent feature has no problem with Visual Studio at all. Not even the slightest degradation of performance (IIRC it's even slightly faster over shared folders on a good SSD). This isn't something fundamentally unsolvable, it's a simple combination of some driver bug and lack of concern by VMware.

wila
Immortal
Immortal

Hello Vaclav,

Not the best use case for VMware's version of shared folders.. not saying that it should not work as you expect. Smiley Wink

It is just that experience has teached old timers like me that hgfs performs poorly in this scenario which is why I pointed to alternatives.

Personally my preferred solution is to have the source locally and use source control to get it elsewhere, I understand -and agree- that everybody has its own needs.

--

Wil

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

I found this thread because I'm experiencing a similar problem.

I also agree that it is unreasonable to simply tell VMware customers to use a different method when shared folders is the mechanism which is designed to allow sharing files between the host and guest OS.

In my case, I'm dealing with both many small files (as when creating and expanding TAR archives) as well as unencrypting and reencrypting them (with a size approaching 100 MB).  It is painfully slow.

I'm now evaluating Parallels and have found it is far superior in performance when sharing files--operating like one would have hoped Fusion would.  I've already paid for Fusion and am not thrilled about spending more good money on a different solution--Parallels. But the difference in performance is huge and something that is just not worth the daily frustration.

Reply
0 Kudos
wila
Immortal
Immortal

Hi,

I also agree that it is unreasonable to simply tell VMware customers to use a different method when shared folders is the mechanism which is designed to allow sharing files between the host and guest OS

Not to rain on your parade, but your reply appears to suggest my answer was the official VMware answer.

To get the official answer you should open a ticket with VMware, I am not employed by VMware nor does VMware reimburse me to help other VMware users out.

So certainly do not take any of my answers as the "endorsed by VMware" answers.

I try to help and give the best answers that I can give within a reasonable amount of time.

So if you prefer to use another product as your solution.. then by all means I'm just happy that you found a solution.

In the end that is what counts and what works for you, might or might not work for others depending on a variety of factors.

--

Wil

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

Hi Will,

Thanks for clarifying the motivation/position behind your comments--I guess I wasn't reading all that carefully as to what your position was.  So I appreciate that clarification.

If you really want to stick to this kind of setup and not use for example source code control to check in changes into a repository (which is my preferred solution to handle this) then you are better off using industry standard file sharing mechanisms like Samba.

FWIW, I tried using SMB as a work-around, but the performance is even worse.

So: whatever Parallels is doing to implement shared folders, it is radically better for the use case I'm dealing with.  Thanks for your thoughts - Tony

Reply
0 Kudos
steve_goddard
VMware Employee
VMware Employee

Hey guys,

I am the  VMware developer for the Shared Folders feature.

I have been trying to get to this issue for several years now, as you can all attest to, and unfortunately that has not changed.

Furthermore, I need to be given some significant time to fix this in the only reasonable way. However, due to VMware and my management priorities with other products, I am not being given any significant time to work on this and indeed other issues I badly want to fix.

Both Workstation and Fusion have had to take significant backseats when it comes to funding and resourcing.

I have been pushing back on this repeatedly especially for Linux client issues with kernel updates.

I do work on these issues but in the background. Currently, Windows 10 WHQL signing for all our tools kernel components is the latest set of interrupts.

I will update you here if things change and I can get work done to improve these Visual Studio issues.

Sorry for bringing bad, if not unsurprising news, but on the upside I am still working on the feature some of the time which isn't a given either!

Steve

Thanks. Steve
Virtual_Rad
Contributor
Contributor

Thanks Mr. Goddard.  I am a long-time enthusiastic user of VM Ware Workstation and VM Ware Fusion. Shared folder access with a Windows 10 guest is slower for me than with a Windows XP, Vista, or Windows 7 guest.  I have my suspicions, but no hard evidence why.  You can only do what you can, so good luck.  If I figure something useful out, I'll let you know.  If there is public documentation of how the shared folders are implemented, I am happy to review it.  Also, I recall being told once that there is the option of having the guest explicitly share a folder on the network and that in some cases, that is faster than the shared folder implementation at least for Windows XP.

Not sure if the OP has access to a Windows 7 guest for testing.

Reply
0 Kudos
JohnMiller11
Contributor
Contributor

Hi Steve,

I got the same problem but found that the performance improves once you:

1) completely shutdown the VM

2) in the Virtual Machine Library window:

- on the left panel: select your VM,

- on the right panel at the bottom, and next to the blue horizontal bar, click on the refresh circle icon (Refresh disk space)

- the right part of the blue horizontal bar will turn yellow and at the bottom right you will get an orange Attention icon saying Clean Up Recommended

3) Click on Clean Up Recommended and in the new window on Clean Up Virtual Machine,

4) once done close the new window and start your VM. Then test the write performance to the shared folder.

Reply
0 Kudos
jmichas
Contributor
Contributor

@JohnMiller11 Unfortunately this option is not available for Bootcamp VMs that use a physical hard drive partition.

@steve goddard, if this is the case, stop charging me every year for an "upgrade", if the next version doesn't include a fix then Im going to switch to Parallels I guess. It sucks because all other parts of my virtualized world are VMware but I can't stand waiting for builds anymore.

I have a reasonably sized Xamarin Forms project and building just for iOS simulator now takes around 3 minutes. Its stupid, think about how many times you might build in a day, I lose probably around 2 hours a day sitting there watching the build dialog.

I understand you don't make the decisions on direction but you need to advocate for fixing a feature that is so massively underperforming.

A question for others who have crossed over to Parallels, how difficult was it? I may need to change sooner than later.

Thanks.

Reply
0 Kudos
jmichas
Contributor
Contributor

Well, for anyone else who finds this, save yourself some heartache and switch to Parallels.

I downloaded the trial and after a bit of fussing got everything working. I mapped the Parallels path under the same drive letter as my vmware fusion network drive that houses all my project work.

Visual studio didnt know the difference and everything worked as expected.

Build time with Fusion 3+ minutes, with Parallels around 25 to 30 seconds. Its kind of a no brainer to switch.

Reply
0 Kudos
rtpguy
Contributor
Contributor

I seem to be hitting the same issue. 

This is...disheartening, as I've been a VMWare Workstation (and later, ESX, vSphere, Fusion..) user since the initial betas back in '99 or so.

I skipped a version of Fusion as I didn't need to run Windows in a VM at my prior job, and was annoyed at the 'forced' yearly 'upgrade' and pricing on Fusion.

Picked up Fusion 8 as I need some MS tools, and once again, decided on VMWare over Parallels as they're the guys that invented the market, so surely any performance differences would be minimal.

Initial experience - sucked.  Issues on the p2v/migration tool (have to kill off 'extra' msiexec instances, as VMware seems to have a buggy converter tool, missing openssl bits..), finally sorted and got the VM going...almost.  It defaulted to USB3 while my MBP is the last of the non-retinas (maxed out BTO i7, matte screen, now 16GB, SSD + spare 1TB data drive) having USB2...so, found and sorted that to find performance pretty abysmal.

I've tried both shared folders via Fusion mirroring, and via SMB only. 

I only mirror my 'work' folder (a sub-dir of Documents), and Downloads.  The first is on the SSD, the latter on a reasonably fast 1TB 7K platter drive.

Several downloads have flat out failed, while Visual Studio 2015 is currently going on about an hour to install (not even a full install) from the Downloads shared folder.

Did I mention Unity seems to also be borked?  Fresh vmware tools install, Unity remains greyed out. 

Window scaling is also fubar.  No matter the resolution settings for the VM, it seems to be locking the VM window into 16:10 orientation - while I used to be able to drag and size on the fly, generally to fill one 1920x1200 LCD, no can do any more, including after running through the screen/display preferences.

I'm giving VMWare one shot to sort this, otherwise requesting a refund and off to Parallels I go. 

Note - the above may seem 'harsh,' but in by book, vmware is going seriously downhill - considering the $ of the forced 'upgrades' yearly for Fusion, you'd expect they also paid someone to update docs, while tons of docs are still for Fusion 4 or even earlier.  get it together, vmware, or you've lost a near 20 year customer, and I doubt I'm the only one.

Reply
0 Kudos
mcarlson2
Contributor
Contributor

Wow. It sounds like someone needs to find a new job. (Especially as you posted this to a public forum.) The reality is that Amazon AWS consumption continues to grow at over 100% YoY (with 45% revenue growth) while VMware's market share is shrinking. These desktop products are the only thing that keep us here. With Asia/EU going to OpenStack (with Linux KVM) and the US going to AWS/Google/Azure, VMware has no long term future. This is called the American business cycle. Why are you continuing to make buggy whips?

Reply
0 Kudos
Reinoud
Contributor
Contributor

Hi Steve,

Did you make any progress on this issue?

I just updated to te latest version (Version 8.5.2 (4635224)) but I still experience the slow performance when using shared folders.

Hope to hear from you!

Kind regards,

Reinoud

Reply
0 Kudos
FhyrDrake
Contributor
Contributor

@steve_goddard,

Definitely want to upvote this issue. I just switched from VirtualBox to VMWare and it's memory and performance is significantly better, however the sharing issue between guest and host needs improvement. I'm having the same issue with Visual Studio as others have mentioned here. How can the community get your management to see this as an issue.

Thanks

Reply
0 Kudos
Mikero
Community Manager
Community Manager

We see it and understand the issue. Fixing it isn't as simple as saying 'make it go faster', it's complicated stuff we're doing, but please rest assured that this is an area that I am focused on guiding the dev team to improving, along with building new and compelling features while addressing performance gaps in other areas.

-
Michael Roy - Product Marketing Engineer: VCF
Reply
0 Kudos
FhyrDrake
Contributor
Contributor

Thanks @mikero, didn't mean to imply that you weren't working on it or that it was easy. I tried very hard to make something like this work in VirtualBox and that was a nightmare (so I'm sure it isn't an easy fix). I'm going to stick with VMWare for the year (since I just bought it and it's a vast improvement over VirtualBox), but it will be a factor for me in future year(s) whether it will be worth an upgrade to Fusion 9, 10, 11, and so forth. I'm sure your team has a list of priorities, features vs performance, etc., so I wanted to mention that this issue is important to me. Good luck and thanks for the reply.

Reply
0 Kudos
Reinoud
Contributor
Contributor

Mikero,

What I don't understand is that this problem didn't exist (for me at least) in version 7. What is changed since version 7 that the performance is so bad?

rgds,

Reinoud

Reply
0 Kudos
jaclas
Contributor
Contributor