Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Sep 2013 08:51:05 -0400
From:      Mark Saad <nonesuch@longcount.org>
To:        Rick Macklem <rmacklem@uoguelph.ca>
Cc:        "stable@freebsd.org" <stable@freebsd.org>, Lars Eggert <lars@netapp.com>
Subject:   Re: nfsd CPU usage?
Message-ID:  <F81C8CA1-F9EC-4769-8678-D76B5F9ECFE4@longcount.org>
In-Reply-To: <995078453.21651811.1378900450650.JavaMail.root@uoguelph.ca>
References:  <995078453.21651811.1378900450650.JavaMail.root@uoguelph.ca>

next in thread | previous in thread | raw e-mail | index | archive | help
Rick
  Would this affect 9.2-RCn ?=20

---
Mark saad | mark.saad@longcount.org


On Sep 11, 2013, at 7:54 AM, Rick Macklem <rmacklem@uoguelph.ca> wrote:

> Lars Eggert wrote:
>> Hi,
>>=20
>> I'm seeing extremely high CPU usage withssh-st the new nfsd:
>>=20
>>  PID USERNAME   PRI NICE   SIZE    RES STATE   C   TIME   WCPU
>>  COMMAND
>> 2280 root       102    0  9932K  1376K *nfs_c  0 320:11 100.00%
>> nfsd{nfsd: service}
>> 2280 root       102    0  9932K  1376K CPU7    7 319:47 100.00%
>> nfsd{nfsd: service}
>> 2280 root       102    0  9932K  1376K CPU5    5 318:25 100.00%
>> nfsd{nfsd: service}
>> 2280 root       102    0  9932K  1376K CPU6    6 318:20 100.00%
>> nfsd{nfsd: service}
>> 2280 root        52    0  9932K  1376K CPU0    0 317:32 100.00%
>> nfsd{nfsd: service}
>> 2280 root       102    0  9932K  1376K *nfs_c  1 315:41 99.17%
>> nfsd{nfsd: service}
>> 2280 root        52    0  9932K  1376K *nfs_c  4 320:22 98.78%
>> nfsd{nfsd: master}
>> 2280 root       102    0  9932K  1376K *nfs_c  1 317:10 98.10%
>> nfsd{nfsd: service}
>>=20
>> And this is at a few hundred KB/s with only a few clients:
>>=20
>> ifstat -i igb1 10
>>       igb1
>> KB/s in  KB/s out
>>  796.56    208.66
>>  431.19    232.36
>>  316.11    280.31
>> 1005.96    523.42
>> 1077.74    342.25
>>  340.63    217.73
>> 1067.96    330.56
>>  487.91    235.61
>>=20
>> Any ideas?
>>=20
>> FreeBSD stanley.muccbc.hq.netapp.com 9.2-PRERELEASE FreeBSD
>> 9.2-PRERELEASE #7: Wed Sep  4 11:06:31 CEST 2013
>>    root@stanley.muccbc.hq.netapp.com:/usr/obj/usr/src/sys/STANLEY
>> amd64
>>=20
>> Thanks,
>> Lars
> There is a patch in head (r254337) that I believe handles this.
> It will be MFC'd to stable/9 in about a week, unless someone finds
> problems with it before then.
> If you want a semantically equivalent (but uglier code) patch,
> you can find it here:
>  http://people.freebsd.org/~rmacklem/drc4-stable9.patch
> After applying the patch, you need to set sysctl variable(s),
> to avoid the aggressive trimming of stale DRC entries. Garrett
> Wollman suggests the following for a large server:
> vfs.nfsd.tcphighwater=3D100000
> vfs.nfsd.tcpcachetimeout=3D300 (5 minutes instead of default of several hr=
s)
>=20
> You can also use the sysctl
> vfs.nfsd.cachetcp=3D0
> to disable use of the DRC for TCP.
>=20
> The old nfs server did not use the DRC for TCP. The assumption being that
> TCP layer retransmits are good enough to maintain reliable RPC transport.
> Unfortuantely, you can get file corruption when the server reboots or
> there is a network partitioning, if the client chooses to redo the RPC
> over TCP (clients always do this after having to create a new TCP connecti=
on).
> In other words, vfs.nfsd.cachetcp=3D0 is roughly what the old nfsd did.
>=20
> If you don't want to patch the 9.2 code, you can edit the sources
> (sys/fs/nfsserver/nfs_nfsdcache.c) and change the line:
> static int nfsrc_tcpnonidempotent =3D 1;
> to
> static int nfsrc_tcpnonidempotent =3D 0;
> to do the same thing as vfs.nfsd.cachetcp=3D0
>=20
> rick
> _______________________________________________
> freebsd-stable@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> To unsubscribe, send any mail to "freebsd-stable-unsubscribe@freebsd.org"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?F81C8CA1-F9EC-4769-8678-D76B5F9ECFE4>