Open ioweb-gr opened 5 years ago
it is really slow, not only for git but for everything that's watching files, my dev server that is watching files takes forever to restart. i'ts adding 30s plus for every restart/reload, this is kinda deal-breaker for me after investing time to try it instead linux as my dev machine where the restart almost instant.
I'm not sure whether this was worth kicking out vmware for wsl. I'm pretty sure I could map stuff through samba and have faster file access. I've been going through release notes and I do not see a single release that was focused on improving performance in /mnt.
Plus I've been using windows tools more often now to unzip, untar, commit etc etc than when WSL started
I will be use WSL1 until WSL2 solve this problem.
Just try out the WSL 2 today on Build 19013.vb_release.191025-1609
and notice the performance drop on /mnt/
. I have to continue to work in a VM until this is fixed, because there are no way to work with PHPStorm/WebStorm without accessing files in mounted drives.
Fyi. With every passing version it's getting worse instead of improving. I can't even run composer anymore because it times out checking out git repositories. Reverted to WSL1 today on my main instance
Any roadmap on fixing this issue?
Folder /mnt/c is too slow.
Rarely rollbacking has been so satisfiying. How is this even released...
I've started noticing recently that disk activity on /mnt/d
(SSD on C:, HDD on D:) is reaching 100% easily sometimes, even when there's nothing intentionally using anything on that disc or any folder/file inside it (see edit below) I couldn't trace what exactly is triggering this activity or being accessed there, but I can say that almost nothing has changed on my use pattern or on the linux image to justify this, other than constant fast-ring updates. It does feel, through my anedoctal evidence, that IO is not getting much better with time.
Let me know if there's any way I can monitor in details such a scenario involving WSL2 so that I can provide more information and maybe help identify bottlenecks.
I'm really hoping WSL2 will improve on IO the same way it has improved recently on memory usage (it's amazing now).
EDIT: I was so into the *nix mindset that I had forgotten I have access to the amazing Resource Monitor from Windows, which now shows that the thing getting constantly bombarded is pagefyle.sys
, though not only by vmmem
. I can say now that this issue on my case is not really immediately IO then, but overall resource consumption (that is only augmented by a suboptimal IO environment).
The thing is, I have RAM available for everything to fit in there, but a lot of disk activity still routes to windows virtual memory...
just use docker inside linux vm ;)
Also i don'k understand, why there is no ways to get access to windows drives without network just with forwarding read&writes to nt kernel...
seems like the project is developing by early-courses students
Still experiencing this in December... wsl2 is pretty much unusable if you need to work out of any thing not already in the linux file system.
Just +1
I did some measurements using the latest slow ring WSL2 as of today and wrote them up in this blog post: https://vxlabs.com/2019/12/06/wsl2-io-measurements/
WSL 2 is currently about 5x slower than WSL 1 accessing files on NTFS.
However, WSL 2 is showing such great potential everywhere else, so I really hope that MS is able to address this issue also!
The same here - starting a node project (using AdonisJS framework) takes about 30s on WSL2 while around 5s on WSL1. I have to go back until this is solved..
Is.this impossible to fix?
Yeah, somehow the newest insider build got even slower.
So far I've converted all my machines to WSL1 again until this gets better. Please do let us know when there are updates regarding this so we can retest for you.
I just wanted to +1 this as well
+1
My primary use case is running phpstorm in the Windows GUI and Linux command line tools on the same set of files. I do not look forward to switch to phpstorm on Linux as support is (obviously) lesser and one of the reasons I didn't even try native Linux on the current laptop is hotplugging GPUs all the time (TB3 eGPU) and so I really do not wish to touch X unless there's some X Server which doesn't go hardware level but then how's performance? Anyways, I hope this gets resolved. It seems we got from the frying pan into fire.
Agreed @chx , This file access performance issues is just killer and making the wsl2 not usable, sticking to wsl1 for now
Please cut it with those “me too” comments. The issue is there, well-documented, acknowledged, probably being addressed. There's absolutely no need to constantly remind all 44 subscribers that there's still nothing new here.
The issue affects you, we get it. Just add a reaction to the initial comment, subscribe, and do NOT comment unless you have anything useful to add to what's already been said.
Moigagoo: thank you for fighting for all of the subscribers that can't handle the notification spam, but other people lending their support to an issue to attempt to get a major problem fixed is not a problem for everyone. Open-source github issues users generally follow the accepted "+1/me too" pattern, but for those who are inconvenienced by the notifications, you can just instead bookmark this page and unsubscribe to the notifications. I am not looking to start an internet fight or trolling competition, but personally I appreciate the "+1"s here and on many issues I track, so I am defending those following this path. stop notifications
I am also affected by the issue referenced here and hope that this has enough traction that it is being working on actively. Look forward to testing the fix when its available.
i kinda don't mind the notifications, and somehow was hoping for some sort of the official comment. for me i jumped back to linux and invested more time there. i just cannot work with this performance and i got tired of all the workarounds. im suprised that they would release this kind of quality even for beta.
I think that some regular status updates (if there are any) on the progress of this issue from people who are overseeing this project would probably stop people spamming
Hi everyone, thank you for the discussion here on /mnt performance in WSL2. We realize this is a dealbreaker for many of you commenting here, and we are looking into ways to improve this, and make the file system performance faster in /mnt drives.
As of right now, if you can move your project over to the Linux file system, please consider doing so and using a WSL2 distro running Linux applications accessing files in your Linux file system for faster file performance. If your use case requires you to access Windows files, please feel free to move back to a WSL1 distro, or consider having a WSL1 distro and a WSL2 distro side by side for your different applications.
We'll be sure to post any updates on this thread as soon as they are available. Thank you for your patience!
@craigloewen-msft ~I'm new here, could you please clarify, what do you mean by "move your project over to the Linux file system"? Should I format a part of my disk in linux format and somehow tell wsl to use it?~ ah, now I see that the problem is in mnt, sorry
Yes, this is a dealbreaker. I was very excited to hear about WSL2 and the performance improvement just to find that it actually is much slower. My use case is using and IDE from windows on code that also want to run/test in linux.
@archfz most IDE's should be able to connect remotely to the WSL2 IP address. Have you tried that? I'm using VScode and the VScode remote plugin and it works well, and it is much faster than WSL1 on windows filesystem, especially with docker applications.
As I understand jetbrains support is not yet ready.
@archfz JetBrains IDEs complain that it is a network drive and file watching may be limited/not work.
A workaround for this is to create a NFS Server on Windows 10 and mount it on WSL 2.
I have some Wordpress apps running on docker and it was very slow to load anything. After I have created the NFS server on Windows 10, mounted it on (in my case) /var/nfs
and started my containers from this folder, my applications got running really faster.
A workaround for this is to create a NFS Server on Windows 10 and mount it on WSL 2.
Hi @lucasctd, what nfs server did you use? Did you find a built in method or is it a third party application? Thanks!
@andrewleech I am using Allegro NFS Server. Unfortunately it's not free, im using its trial version. I will look for a free one later xD.
Just fix the issues with WSL1, please.
I use it from the very beginning and switched from OSX to Windows because of this.
Using a VM for development is a horrible pain in many-many ways, that's why people left you for a mac in the first place including me.
Big Chinese giants started selling laptops with Linux on them and the competition is growing with a speed we have never experienced.
Only a proper Windows - Linux integration can keep up with a working Linux desktop.
This is a major threat to your business and you have no control over it apart from WSL1. In a few years, half of the world will not be able to run their software on windows if you stick with VMs.
Windows Vista was a pile of flowers and you haven't given up, you can do it with WSL1 too.
+1
Incredible. I'm on 19035, doing basic package installs.
$ composer install
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Package operations: 120 installs, 0 updates, 0 removals
- Installing google/apiclient-services (v0.65): Loading from cache
It's been sitting like that for 10 minutes running unzip under the hood. How big is that zip you ask? 7.5 Megabytes
It's a lot of small text files.
WSL was released with some serious hype. I've spent the time to get all our developers using it just so we can get some cheaper windows laptops but at this point I'm spending more time trying to support this configuration than it would cost to simply get Macbooks for everyone.
If you release WSL2 like this my recommendation will be to drop Windows entirely.
@hparadiz I've since downgraded from WSL2 -> WSL1 until the performance issues are resolved. The main limitation of this is that I cannot run docker naively, so I have docker desktop for windows running. WSL1 is amazingly fast for my use cases, which include heavy usage of docker, java and python.
Really looking forward to being able to migrate my workflow to WSL2, though, as I'm sure we all are.
EDIT: Or, you can of course, not work in a /mnt/
drive, which should resolve your performance issues, albeit with other downsides.
@hparadiz @nmiodice just move your files to ~
(under the linux partition) and it will be almost as fast as native linux.
@andreialecu I did it - inside WSL2 linux partion everything IS fast & smooth. However - I am using Windows based PHPSTORM IDE, which cannot access those files. I can map a network drive (\wsl$\ubuntu\home...) but then it is slow again.
Is it possible to get some indication of whether we are looking at weeks or months for a resolution?
We are also in the 'Docker + WSL2' boat and can get by for a while if there's a fix on the horizon, but if not we're better served by holding off on running Docker natively as we can't move our development environments into the linux filesystem completely.
The other devs on my team want to use Sourcetree as a GUI for Git and since they are running it as a Windows app the code must be on a windows drive. Putting the code into the Linux partition is not a solution.
WSL is super cool! I am so excited to try WSL2 (but I will wait for GA 😄)! The comments on filesystem performance in Linux (not /mnt) are very promising!
just move your files to ~ (under the linux partition) and it will be almost as fast as native linux.
Also this tweet: https://twitter.com/benhillis/status/1212819586539646976
2020 is going to be a huge year for Window Subsystem for Linux with the GA of #WSL2 and some incredible unannounced new features.
Can't wait to know more about the unannounced new features. Maybe Microsoft Build 2020? 🤔
I miss easier and better WSL integration from Visual Studio 2019 and Jetbrain IDEs (Rider).
I am OK with having my code in Linux if I can open projects (sln, csproj) with Visual Studio 2019 or Jetbrains Rider. Is that possible? Other comments and issues are telling me that it's not possible right now.
I would love to install nodejs and git only in Linux and use on all my projects. I have web projects that runs on classic .Net Framework and .Net core. Would be great to open them with Visual Studio 2019 but use git, webpack, npm and other nodejs tools (for front-end parts in a .Net project) with WSL and have nodejs to run "almost as fast as native linux".
I am OK with having my code in Linux if I can open projects (sln, csproj) with Visual Studio 2019 or Jetbrains Rider. Is that possible? Other comments and issues are telling me that it's not possible right now.
you can map wsl distros as network drive in windows and then open project in ide (Intellij and other JetBrains ids from 2019.3 even can see $wsl paths without mapping as network drive) performance in ide is acceptable for my projects
I can confirm the issue. OS Build 19041.84 WSL2 with Ubuntu-18.04 LTS Docker under the WSL2 (without Docker Desktop)
docker-compose has next services:
Pure Symfony 5 project. docker-compose up -d from /mnt/c/users/****/symfony Welcome page loading around 2.8 seconds from ~/symfony Welcome page loading around 50 ms
What I can say, I thought that local development using Windows 10 is real, but current problem with the mnt performance and issue with systemctl (docker cannot run automatically on wsl2 start), make it pointless.
With hope in the best wsl future, Bogdan.
I can confirm the issue. OS Build 19041.84 WSL2 with Ubuntu-18.04 LTS Docker under the WSL2 (without Docker Desktop)
docker-compose has next services:
- php-fpm
- nginx
- postgresql
- adminer
Pure Symfony 5 project. docker-compose up -d from /mnt/c/users/****/symfony Welcome page loading around 2.8 seconds from ~/symfony Welcome page loading around 50 ms
What I can say, I thought that local development using Windows 10 is real, but current problem with the mnt performance and issue with systemctl (docker cannot run automatically on wsl2 start), make it pointless.
With hope in the best wsl future, Bogdan.
There is a project help you to enable systemd in WSL2. wsl2-hacks
A workaround for this is to create a NFS Server on Windows 10 and mount it on WSL 2. I have some Wordpress apps running on docker and it was very slow to load anything. After I have created the NFS server on Windows 10, mounted it on (in my case)
/var/nfs
and started my containers from this folder, my applications got running really faster.
hi @lucasctd can you please tell little more about how you did this? Like install that NFS server, configure it to export some directory and then in wsl 'sudo mount %windowsIP%:/someexport ...'? Maybe it need more advanced preconfiguration or firewall tweaks?
@lucasctd @itspers I've setup FreeNAS on my windows box but am not able to connect to it in WSL - tried a few different IP's. Can you share your setup/progress?
Not the perfect, but the working solution for the Intellij idea/PHPStorm/WebStorm. You need to have:
On every autosave, the file watcher will run the sync script, which is using rsync to sync the files between mnt and linux partition. The only one problem, this sync process can take around 4-7 seconds, but the project is working fast.
I can share my example with the comment on the important moments, so, you can modify it for your own purpose. HOWEVER, I hope WSL2 team will fix this problem!
start.sh
#!/bin/bash
sudo service docker start
#important, copy the whole project to the linux folder, to speed up initial start of rsync
cp -a /mnt/c/Users/bogh/projects/symfony/ /var/www/symfony/ --progress --no-perms --no-owner --no-group --cvs-exclude
chmod -R 777 /var/www/symfony/var/log/
chmod -R 777 /var/www/symfony/public/
#shellcheck disable=SC2164
cd /var/www/symfony/
docker-compose up
sync.bat
#important, exclude can be different for you as the name of the folders
bash -c "rsync -rvWS /mnt/c/Users/bogh/projects/symfony/ /var/www/symfony/ --no-perms --no-owner --no-compress --exclude .idea/ --exclude .git/ --exclude .docker/ --exclude /var/cache/"
File watchers (select a folder only with the source code, to speed up the file watchers)
@bog-h what is benefits of such complex solution?
i now using next setup:
so i basically choose slower IDE, but faster webserver execution for PHP
but since Jetbrains is not going to make normal wsl support in nearest year, and vscode will remain just fancy text editor forever, and even if WSL team will improve /mnt/c read speeds somehow – it will be anyway not so fast as native
for Microsoft problem is solved by VSCode extension, for Jetbrains problem doesnt exists – too small percent of users involved
I decided to open this as a separate issue because although it's related to the generic issue of filesystem performance it's directly related to WSL 2 while the other issues are for WSL 1 and it's showing very conflicting results.
Your Windows build number: (Type
ver
at a Windows Command Prompt) Version 10.0.18917 Build 18917What you're doing and what's happening: I'm testing filesystem write speed in /mnt using dd command. Performing the following tests
WSL2
root@LUCIANO-PC:/home/# dd if=/dev/zero of=/mnt/e/testfile bs=1M count=1000 1000+0 records in 1000+0 records out 1048576000 bytes (1.0 GB, 1000 MiB) copied, 25.939 s, 40.4 MB/s
WSL1
root@LUCIANO-PC:/home/# dd if=/dev/zero of=/mnt/e/testfile bs=1M count=20000 20000+0 records in 20000+0 records out 20971520000 bytes (21 GB, 20 GiB) copied, 47.4897 s, 442 MB/s
On / it's actually the reverse. WSL2 is more than 2 times faster than WSL1.
Another interesting fact is that if I mount the same drive as a cifs share I get 3x performance
WSL 2 (cifs share)
root@LUCIANO-PC:/mnt/sambae# dd if=/dev/zero of=/mnt/sambae/testfile bs=1M count=10000 10000+0 records in 10000+0 records out 10485760000 bytes (10 GB, 9.8 GiB) copied, 84.001 s, 125 MB/s
An update of the current status because it's way too hidden in this thread.
Latest status report: https://github.com/microsoft/WSL/issues/4197#issuecomment-604592340_