[Bug 1862264] Re: Browsing smb share is painfully slow
Pablo Copissa
1862264 at bugs.launchpad.net
Wed Feb 12 11:57:25 UTC 2020
Looks like gio is part of glib, not gvfs, so changed the package accordingly.
Also made clear in the title that gio vs mount is part of the issue.
** Package changed: gvfs (Ubuntu) => glib2.0 (Ubuntu)
** Summary changed:
- Browsing smb share is painfully slow
+ Browsing smb share is painfully slow when mounted via "gio" (compared with "mount")
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to glib2.0 in Ubuntu.
https://bugs.launchpad.net/bugs/1862264
Title:
Browsing smb share is painfully slow when mounted via "gio" (compared
with "mount")
Status in glib2.0 package in Ubuntu:
New
Bug description:
Ubuntu 18.04 LTS here, fully updated (as of late Jan 2020).
TEST #1:
To establish a baseline/expected behavior, we first mount an SMB share via mount.cifs and time an ls command:
$ sudo mount -t cifs -o username=pablo //myserver.example.com/share ~/mnt/share
$ cd ~/mnt/share/some/dir
$ time ls
... approx 320 files ...
real 0m1,080s
user 0m0,008s
sys 0m0,005s
$ sudo umount ~/mnt/share
TEST #2
Now we do the same via gio mount:
$ gio mount smb://myserver.example.com/share
cd /run/user/1000/gvfs/smb-share\:server\=myserver.example.com\,share\=share/some/dir
$ time ls
... same 320 files ...
real 0m28,999s
user 0m0,013s
sys 0m0,032s
Enumeration of files is about 29 times slower when mounted via gio
mount than via mount -t cifs.
TEST #3
Now for the real weird: while using the gio-mounted folder, we now time ls IN COMBINATION WITH SOMETHING ELSE (can be strace ls, ls|wc etc...):
$ time ls | wc
321 323 9804
real 0m0,546s
user 0m0,006s
sys 0m0,004s
Note that this is almost TWICE AS FAST than the "fast" mount of test
#1 and about 53 times faster than "slow" test #2 !
The expectation is that Tests 1 and 2 should have similar timings, not
differing by a factor of 30 or so. More disturbing, there is no good
reason why tests 2 and 3 differ by an even bigger factor of 53: They
use the same underlying infrastructure which test 3 proves is
adequately fast. And yet, we get this slow down in test 2.
As a final note, these benchmarks are a distilled version of the original real-life motivating scenario where a Java-based program would simply take tens of minutes to display the same list of 320 files when mounted via gio mount and a second or so when mounted via mount -t cifs.
The same timing difference is of course visible in any file manager.
Hope this helps
PS: several old/ancient bug reports exist for a similar issue and I
deliberately copied the title from one of them (#259771)
PS2: may or may not be relevant: The remote server is a VM running
Windows 7 (yes, I know...) and the connection was made via VPN (Ubuntu
stock SSTP).
PS3: Another data point (server is now a Synolgy NAS, not a Win7 VM)
$ gio mount smb://nas.example.com/share2
$ cd /run/user/1000/gvfs/smb-
share\:server\=nas.example.com\,share\=share2/another/path
$ time ls
... 528 subdirs approximately ...
real 0m45,075s
user 0m0,013s
sys 0m0,058s
$ time ls | wc
528 1631 10893
real 0m0,911s
user 0m0,003s
sys 0m0,005s
Factor is about 50.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/glib2.0/+bug/1862264/+subscriptions
More information about the foundations-bugs
mailing list