Re: NFSv4 client hung

From: Rick Macklem <rick.macklem_at_gmail.com>
Date: Tue, 02 Sep 2025 14:00:00 UTC
On Tue, Sep 2, 2025 at 6:01 AM Alexandre Biancalana
<biancalana@gmail.com> wrote:
>
> Hi Rick! Thank you for the answer.
>
> I also think that it has nothing to do with the server because there’s other nfs client (also running vms with bhyve) that keeps running.
>
> To make sure that I understood, in my setup the nfs client is a physical host that mount nfs share with vms disks. Then I run those vms with bhyve, that vms does not mount any nfs share.
> The hang happens when I try to access the nfs mounted shares in the physical host and (i think) as consequences the vms also freeze when trying to do io.
>
> Your suggestion is to increase the amount of memory of the vms ?
Oops, yes, the buffer cache problem would be on the physical system,
given that is where the mount is done.

>
> For educational purposes, can you point me the code part that uses newbuf so i can try to learn something?
sys/kern/vfs_bio.c

There are some sysctls you can look at. You'll get them by:
# sysctl -a | fgrep vfs | fgrep buffer
# sysctl -a | fgrep bufspace
- Some of these can be adjusted. If you look in sys/kern/vfs_bio.c,
  you can see which ones are CTLFLAG_RW.

Also, you can see exactly what the NFS mount setup is by:
# nfsstat -m
- If you post the output from this, I might be able to suggest
  some mount option changes.

I do not know how bhyve reads/writes the image file?
(That might be a hint as well, since that is probably
what is unique about your setup.)

rick

>
> Ale
>
> On Mon, 1 Sep 2025 at 22:49 Rick Macklem <rick.macklem@gmail.com> wrote:
>>
>> For some reason, I cannot reply to your email
>> (might be the size of it), so I'll post a simple
>> comment.
>>
>> As you noted, processed are stuck on newbuf in
>> the client. This probably has nothing to do with
>> the server. It also looks like the clients are bhyve.
>>
>> Bump the memory size of the bhyve clients up,
>> maybe way up.
>> --> There are ways to tune the size of the buffer
>>       cache, but bumping up the VM's ram should
>>       give you more.
>>
>> rick