Web lists-archives.com

[Samba] vfs_fruit causes delay in listing directories for Windows clients




Listing directories with many files (10000+) from a Windows client is nociceably slower when vfs_fruit is enabled on the samba server compared to the same setup without vfs_fruit.

On my setup it's roughly 2.5 times slower. To me it looks like this is caused by the getxattr call which is only present with vfs_fruit activated and introduces an additional delay of ~ 0.00033 s per listed file.

strace -T reveals the following with vfs_fruit activated:

newfstatat(35, "03915", {st_mode=S_IFREG|0660, st_size=1265, ...}, AT_SYMLINK_NOFOLLOW) = 0 <0.000243> fcntl(20, F_SETLKW, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=8368, l_len=1}) = 0 <0.000010> fcntl(20, F_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET, l_start=8368, l_len=1}) = 0 <0.000009> stat("stroth/testfiles_10000-50000/10000/03915", {st_mode=S_IFREG|0660, st_size=1265, ...}) = 0 <0.000312> getxattr("stroth/testfiles_10000-50000/10000/03915", "user.org.netatalk.Metadata", 0x55803d5c9a90, 402) = -1 ENODATA (No data available) <0.000348>
listxattr("testfiles_10000-50000/10000/03915", "", 1024) = 0 <0.000345>

a trace of the same directory listing with vfs_fruit disabled is faster and doesn't show the getxattr call:

newfstatat(36, "03239", {st_mode=S_IFREG|0660, st_size=303, ...}, AT_SYMLINK_NOFOLLOW) = 0 <0.000252> fcntl(20, F_SETLKW, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=19600, l_len=1}) = 0 <0.000008> fcntl(20, F_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET, l_start=19600, l_len=1}) = 0 <0.000007> stat("stroth/testfiles_10000-50000/10000/03239", {st_mode=S_IFREG|0660, st_size=303, ...}) = 0 <0.000419>
listxattr("testfiles_10000-50000/10000/03239", "", 1024) = 0 <0.000355>


My goal with activating vfs_fruit was to speed up directory listings for Mac clients, which works. Can the accompanying slowdown for Windows clients be avoided?

Thank you for any insights,
Stephan


-- 
To unsubscribe from this list go to the following URL and read the
instructions:  https://lists.samba.org/mailman/options/samba