I've been using NAS4Free for a few years now. It's been going well so far, but lately I've noticed slow performance during backups from a Windows PC writing to the N4F server using SMB. I then tried copying larger single files manually, or a series of large files, and the process freezes every few minutes for about 30-60 seconds, before continuing at full speed, only to freeze and unfreeze over and over again. This doesn't happen for every file, just every few 100s or 1000s MB in the overall file transfer. When the write process is frozen, the Web GUI and other SMB requests don't respond as well. Executing commands in an existing SSH session still works though.
Initially I thought it was an SMB issue, and tried different suggestions from other threads, until I tried using SCP, and had the exact same issue. Creating a dummy file using dd through ssh caused the same problem as well
Code: Select all
dd if=/dev/urandom of=testfile bs=8192k count=1000One thing I've noticed though, is while reproducing the problem, looking at top shows the state of the process being "dp->dp", and as soon as that changes to "zio->i" and whatever else, the write action can continue.ACL tag type ACL_EVERYONE. FreeBSD with ZFS? Use 'vfs objects = zfsacl'
I thought it was because less than 100M was free under Mem in top, but in other tests there was more than 1100M free Mem, so I don't think a memory issue is the cause.
I've tried turning off sync for a test dataset, and that didn't fix it either.
Basically my question is, what does dp->dp as a process state mean, and how can I prevent a process (smbd, dd, etc.) entering that state?
To my setup:
NAS4Free version: 10.3.0.3 - Pilingitam (revision 3955)
Platform: x64-embedded on Intel(R) Core(TM) i5 CPU 760 @ 2.80GHz
RAM: 12GB
zpool: 3x4TB in raidz1
Thanks for any help!

