I've been experiencing slow directory browsing performance on an AD member server with 48GB RAM and a 12 disk zpool configured as 6 mirrored vdevs using NFSv4 ACLs and Samba 4.1.11. The problem appears to be related to extended attribute / permissions lookups on directories with large amounts of files / folders. You can dramatically increase performance by disabling certain permissions-related features of samba (i.e. disable 'store dos attributes' and 'ea support'), but these parameters are required for proper AD / windows integration.
I know that in ZoL you can dramatically improve performance of these lookups by setting xattr=sa, which stores xattrs that are smaller than 64KB in dnode_phys_t's bonus block. The OpenZFS website indicates that this ZFS feature may not be implemented (represented by "??"). For reference see here: http://open-zfs.org/wiki/Features#SA_based_xattrs
My questions are as follows:
1) Are SA based xattrs implemented in ZFS on FreeBSD?
2) If not are there any plans to implement them?
3) I'm leaning towards increasing ARC to 96GB and possibly adding an L2ARC device. Do you have any ideas on increasing performance via software config? (My pool is only 30% full, I've disabled atime, and have determined that my problem isn't network related (browsing is also slow through smbclient run locally on server).)
For reference
Any advice / information would be much appreciated as I am a bit of a newbie.
I know that in ZoL you can dramatically improve performance of these lookups by setting xattr=sa, which stores xattrs that are smaller than 64KB in dnode_phys_t's bonus block. The OpenZFS website indicates that this ZFS feature may not be implemented (represented by "??"). For reference see here: http://open-zfs.org/wiki/Features#SA_based_xattrs
My questions are as follows:
1) Are SA based xattrs implemented in ZFS on FreeBSD?
2) If not are there any plans to implement them?
3) I'm leaning towards increasing ARC to 96GB and possibly adding an L2ARC device. Do you have any ideas on increasing performance via software config? (My pool is only 30% full, I've disabled atime, and have determined that my problem isn't network related (browsing is also slow through smbclient run locally on server).)
For reference
Code:
[global]
server max protocol = SMB2_24
ea support = yes
store dos attributes = yes
unix extensions = no
acl allow execute always = true
idmap config *:backend = tdb
idmap config *:range = 90000000-100000000
server role = member server
netbios name = STORAGE
workgroup = FOO
realm = FOO.COM
security = ADS
client use spnego = yes
acl check permissions = true
acl map full control = true
dos filemode = yes
winbind cache time = 7200
winbind offline logon = yes
winbind enum users = yes
winbind enum groups = yes
winbind nested groups = yes
winbind use default domain = yes
winbind refresh tickets = yes
idmap config FOO: backend = rid
idmap config FOO: range = 20000-20000000
allow trusted domains = no
client ntlmv2 auth = yes
dos charset = CP437
unix charset = UTF-8
log level = 1
[Sample_Share]
path = /mnt/Tank/Sample_Share
printable = no
veto files = /.snap/.windows/.zfs/
writeable = yes
browseable = yes
shadow:snapdir = .zfs/snapshot
shadow:sort = desc
shadow:localtime = yes
shadow:format = auto-%Y%m%d.%H%M-2m
vfs objects = shadow_copy2 zfsacl streams_xattr aio_pthread
nfs4:mode = special
nfs4:acedup = merge
nfs4:chown = yes
zfsacl:acesort = dontcare
Code:
FreeBSD STORAGE.FOO.COM 9.2-RELEASE-p10 FreeBSD 9.2-RELEASE-p10 #0