Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 21 Oct 2024 09:17:05 -0700
From:      Rick Macklem <rick.macklem@gmail.com>
To:        freebsd-fs@freebsd.org
Subject:   Re: improving nfs client & server performance
Message-ID:  <CAM5tNy4scNutJXdOL=UmK_NhObcfbwpnUpL1dFqe3JVeJVWvcQ@mail.gmail.com>
In-Reply-To: <ZxZbPmv_11tS5pxZ@int21h>
References:  <ZxZbPmv_11tS5pxZ@int21h>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Oct 21, 2024 at 6:46=E2=80=AFAM void <void@f-m.fm> wrote:
>
> I'm looking to try to improve nfs client & server performance.
> The problem I'm seeing is that when clients access the server,
> if more than one does it at once, the access speed is very
> 'spiky' and in /var/log/messages on the client, it has things like
>
> Oct 20 07:21:55 kernel: nfs server 192.168.1.10:/zroot/share: not
> responding
> Oct 20 07:21:55 kernel: nfs server 192.168.1.10:/zroot/share: is alive
> again
> Oct 20 07:42:05 kernel: nfs server 192.168.1.10:/zroot/share: not
> responding
> Oct 20 07:42:05 kernel: nfs server 192.168.1.10:/zroot/share: is alive
> again
> Oct 20 08:29:54 kernel: nfs server 192.168.1.10:/zroot/share: not
> responding
>
> If one client is accessing one file at once, the transfer is very fast.
> But syncing like rsync or webdav is very problematic and takes much longe=
r than
> it should.
>
> The server is recent 14-stable and exports nfs via the zfs sharenfs prope=
rty.
> The clients are a mix of freebsd and linux (debian)
>
> I note on the server there's lots of vfs.nfsd sysctl tunables but I'm not=
 sure
> if thay are relevant in a zfs sharenfs context. There's even more vfs.zfs=
 but
> nothing pertaining directly to nfs.
>
> On a freebsd client, it has these in rc.conf
>
> # nfs client stuff
> nfs_client_enable=3D"YES"
>
> Maybe it needs local locks (-L) unsure how to pass flags to the client st=
arted
> in this way. How would I know if local locks were needed?
>
> I note in defaults/rc.conf there is
> nfs_bufpackets=3D""   # bufspace (in packets) for client
>
> but I'm not sure what the effects would be.
>
> I've so far set 'zfs set sync=3Ddisabled' for the particular vdev and
> 'sysctl vfs.nfsd.maxthreads=3D256' on the server, about to test this.
There are lots of possibilities, but here are a couple to try...
vfs.zfs.dmu_offset_next_sync=3D0    - this makes SEEK_HOLE/SEEK_DATA
                                                          much faster,
but less reliable (as in it
                                                          might miss
finding a hole)
vfs.nfsd.cachetcp=3D0                        - this disables the DRC cache =
for TCP
                                                          connections
(if this helps, there are
                                                          settings to
try to tune he DRC).
                                                          Disabling
the DRC for TCP means that
                                                          there is a
slight chance of corruption, due
                                                          to duplicate
non-idempotent RPCs being
                                                          done after a
TCP reconnect.
                                                          Has no
effect on NFSv4.1/4.2 mounts.

rick

> --
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAM5tNy4scNutJXdOL=UmK_NhObcfbwpnUpL1dFqe3JVeJVWvcQ>