Re: nfs server issues
Michael Halstead <[email protected]> Tue, 7 Jul 2026 15:54:16 -0700
| Newsgroups | gmane.os.freebsd.devel.file-systems |
|---|---|
| Message-ID | <CADfgfoYuyURCPMQn-b2m+uzR24ru2PPxznB6tqZqnz+Ukk1N-A@mail.gmail.com> |
On Tue, Jul 7, 2026 at 1:52 AM Richard Purdie < [email protected]> wrote: > On Sat, 2026-07-04 at 12:41 -0700, Rick Macklem wrote: > > On Sat, Jul 4, 2026 at 1:05 AM Richard Purdie > > <[email protected]> wrote: > > > > > > nfsstat -E -s > > > Server Info: > > > Getattr Setattr Lookup Readlink > Read Write > > > 17354100116 1674996998 5136769057 40544 18429670397 > 986443058 > > > Create Remove Rename Link > Symlink Mkdir > > > 0 98646613 119865835 17071853 > 0 0 > > > Rmdir Readdir RdirPlus Access > Mknod Fsstat > > > 0 1655544711 0 4129535844 > 0 0 > > > FSinfo pathConf Commit LookupP SetClId > SetClIdCf > > > 0 0 8723436 0 > 0 0 > > One more thing to note. The # of Commits is much smaller than the # of > Writes > > on the top line. This "hints" that a lot of the Writes are being done > File_sync. > > (To check that, you'd need to capture packets and look at them in > wireshark.) > > I've captured data at https://valkyrie.yocto.io/pub/non-release/mtest/nfs_capture2.pcap.zst from a fresh reboot running the testlock.py for about 100MB of data and umounting the filesystems. Please let me know if this reveals the issue or what else I can offer. Thank you. > > > If a lot of the Writes are File_sync (which means the server must commit > the > > data/metadata changes to stable storage before replying), doing the > "mirrored > > pair of storage devices dedicated to the ZIL" could be what you need to > get > > writes to work well. (As I mentioned, the "cheat" alternative is to > > set "sync=disabled", > > but that runs a risk of data loss when the NFS server crashes/reboots.) > > I was able to find a way to increase the Open/Lock counts on the > server. Most of the locking we do on the clients is from a tool called > Bitbake and the locking is isolated to specific function. I maintain > Bitbake and wrote/maintain the locking code over the <too many> years. > I copied and pasted the relevant code straight from bitbake into a test > script: > > https://valkyrie.yocto.io/pub/non-release/rptest/testlock.py > > (code is from > https://git.openembedded.org/bitbake/tree/lib/bb/utils.py) > > Obviously it could easily be simplified more but I wanted to test our > actual code. The lock file name/path is hardcoded at the end of the > script but easily changed. > > I ran that script on three of the NFS clients for around 5 minutes. On > the server, the counts went from: > > nfsdumpstate | egrep > 'fd01:172:16::242:2157|fd01:172:16::12|fd01:172:16:1::11 ' > CB 2 6307 55 55 0 0 > fd01:172:16::242:2157 > 4c696e7578204e465376342e322064656269616e31322d766b2d31 > CB 3 6543 77 77 0 0 > fd01:172:16::12 > 4c696e7578204e465376342e322064656269616e31322d766b2d33 > CB 2 6571 83 83 0 0 > fd01:172:16:1::11 > 4c696e7578204e465376342e322064656269616e31322d766b2d32 > > to: > > nfsdumpstate | egrep > 'fd01:172:16::242:2157|fd01:172:16::12|fd01:172:16:1::11 ' > CB 2 6462 65 65 0 0 > fd01:172:16::242:2157 > 4c696e7578204e465376342e322064656269616e31322d766b2d31 > CB 3 6679 83 83 0 0 > fd01:172:16::12 > 4c696e7578204e465376342e322064656269616e31322d766b2d33 > CB 2 6691 88 88 0 0 > fd01:172:16:1::11 > 4c696e7578204e465376342e322064656269616e31322d766b2d32 > > I've then stopped the scripts and waited and the counts just stayed > there. > > I'd be very interested if someone else could reproduce that and if so, > explain what is happening and if it is an issue? > > I can't prove the write hangs are related to the counts but it does > seem there is some issue there regardless as they don't make sense. > > Cheers, > > Richard > -- Michael Halstead (he/him) Linux Foundation / Yocto Project Staff IT Engineer