-
Notifications
You must be signed in to change notification settings - Fork 86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
File copies using dd
for cgofuse (memfs/ custom filesystem) are super slow on Windows 10 using PowerShell/MINGW64 terminal
#86
Comments
Ah, the problem is only present in the MINGW64 terminal that came installed with git. Edit: I am wrong in this comment. The problem still persists on powershell/ visual studio code terminal with memfs and with my custom file system. The problem seems to be with |
dd
for cgofuse (memfs/ custom filesystem) are super slow on Windows 10 using PowerShell/MINGW64 terminal
I can see that on windows the
|
My first recommendation in such cases is to ensure that you are using I am not certain why One way to explore the differences is to use FileSpy. This can be used to track all file system operations as posted to the WinFsp FSD (File System Driver). So you could run your experiment with |
A bit unrelated with memfs, but optimizing my custom filesystem for a file block size of 16777216 bytes, yields a copy speed of 500MB/s on windows (compared to 40 MB/s for 128 KiB file block size optimization), which I am satisfied with for my use case. Note that for linux (ubuntu) the optimium size from my experiments is 128 KiB, using higher sizes will downgrade the Using: For memfs:
There is also an increase in speed for
I find the discrepancy between |
Hello,
I suspect that file writes are super slow on cgofuse windows.
I am running the following experiment on a Windows10 virtual machine with 16GB memory allocated.
I have run the memfs example and tried to issue a dd command for 1 GiB file from outside the filesystem inside the filesystem.
Note: bs=4096 has a similar speed, I just used 131072 as
cp
on linux deals in 128 KiB block sizeThe dd command for files on the native filesystem has a copy speed of around 400MB/s.
A bit of context on how I stumbled on this issue:
I have a custom filesystem using the hanwen/go-fuse library, and on Ubuntu (fusermount3)/ MacOS(macFUSE) I achieve around 400-500MB/s speeds for copying a large file from outside of the filesystem to my custom filesystem.
However after I added windows support via winfsp (only using cgofuse when compiling on windows - the underlying logic is the same, it's just adapted to implement the cgofuse interfaces), I noticed that the speed for copying a large file from outside of the filesystem inside the filesystem is around 28-40 MB/s.
Edit:
I have tried the same experiment using memfs from WinFSP:
and the
dd
copy speed is very close to the one for cgofuseCould it be because I am on a virtual machine? Could it be because of windows 10?
The text was updated successfully, but these errors were encountered: