Win11 SMB performance issues / inconsistencies

Recently I have been doing some media metadata manipulation and I am seeing poor inconsistent performance in my win11 system to my Trunas SMB share.

I have recently reinstalled scratch Win 11 pro (AMD ryzen 5900 12 core 32GB, 2,5Gbit NIC / switch) updated all drivers and win updates

I also recently updated my trueNAS system to 25.04 (10 Core i9, LSI HBA, 256GB, intel 10 NIC)

pool is on 6xSeagate Exos 14TB Z1, mirrored pair of optane for metadata and small blocks (128) no log/cache/spare/dedupe vdevs, pool is only 54% full, no ZFS or SMART issues, regularly scrubbed.
pool is “hddpool” type:filesystem, sync:standard, compression:1.0 (LZ4) Atime:off, ZFS depupe is off, case sensitivity is on

my data is in a dataset “data” with SMB NFS and App roles. unencrypted, type:filesystem, sync:standard, compression:1.0 (LZ4) Atime:off, ZFS depupe is off, case sensitivity is on

SMB share:purpose multi-protocol NFS4/SMB, advanced SMB settings ACL enabled, browsable enabled, shadow copies enabled, the rest is not checked.

I browse to the SMB share by \nasIP\share

as an example
one of my media files has 10.5K folders each with a single mkv file inside. It can take a long time to simply do a search for *.mkv in here. after the search completes, it can take a whole minute to go back from the search results to the root folder (.
then
I go to the root of the shares with \nas ipaddress and I see the 4 SMB shares I have. I simply click the refresh arrow in windows file explorer and it takes about a minute just to refresh the list with those four shared folders.

At this point, I restart my Truenas. After a reboot I expect it to be slower as nothing is cached right? nope. I click refresh on that same still open file explorer window, and it refreshes instantaneously. bouncing back and forth between folders is instant, no more 1 minute delay.
open up that same media folder and search for *.mkv, the search takes forever, finding about 1.5 file per second … sloooowly incrementing the counter.

I don’t see anything bottlenecked at this time. My PC CPU/RAM/network etc are basically in idle. The NAS seems idle as well, no single CPU even appears too busy,

Any ideas on how I can improve my performance in this task would be greatly appreciated.

Based on another post, I have played with the SMB share attribute “purpose” and it makes a massive difference. If I change the SMB share for DATA to purpose: default share parameters (and restart SMB service) the search speed is increased 1000x. from incrementing 1.5 files per second it’s easily 2000 files / second. I am not sure if it will break anything yet … since I do have both SMB and NFS on this dataset …

Even the default share parameter setting is acting strangely. I modified 15 files then hit refresh on my file explorer window, and it became non-responsive. Checking the SMB STATUS Locks and looking at the open shares, it appeared to be working its way through all the files in that share … and it eventually seemed to finish, but I was left with a non-responsive File Explorer window and needed to restart it.

Did you have the metadata vdev from the start?

Also, you can monitor your pool performance during the “high load” with something like sudo zpool iostat <your-pool-name> -lv -y 5 30.

Yes, I copied all my data off the TrueNAS, created the volumes as they are, then copied it all back to maximize the advantage of the metadata and small block vdev.

1 Like