dfbsd nfs client - file descriptor leak
Gennady Proskurin
gpr at nnz.ru
Wed Apr 23 03:57:00 PDT 2008
I have one FreeBSD nfs server, many FreeBSD nfs clients and one
DragonFly nfs client.
server:
FreeBSD 6.3-STABLE FreeBSD 6.3-STABLE #0: Thu Apr 3 15:11:39 MSD 2008
i386
dfbsd client:
DragonFly 1.12.0-RELEASE DragonFly 1.12.0-RELEASE #1: Wed Mar 5
22:16:30 MSK 2008 i386
freebsd clients - different versions from freebsd-4 to 8-current
The problem is: when accessing files from dfbsd client, nfs server
"leaks" file descriptors
Example:
Mount /usr/src on clients via nfs:
mount_nfs -o tcp,ro,intr nfsserver:/path.../src /usr/src
Running "tar -cf - /usr/src > /dev/null" on different clients, including
dfbsd
On FreeBSD server I run shell script:
while true
do
sysctl kern.openfiles
sleep 5
done
When running "tar..." on dfbsd client, typical output from shell script
on nfs server is:
kern.openfiles: 1738
kern.openfiles: 1775
kern.openfiles: 1820
kern.openfiles: 1861
kern.openfiles: 1902
kern.openfiles: 1967
kern.openfiles: 2047
. ..
Note continuous increasing
When kern.openfiles reaches some high value, "bad things happen" on nfs
server
Restarting nfsd on server helps:
% sysctl kern.openfiles
kern.openfiles: 3483
% sudo /etc/rc.d/nfsd stop
Stopping nfsd.
Waiting for PIDS: 85888.
% sysctl kern.openfiles
kern.openfiles: 263
When running "tar..." on any freebsd client, typical output from shell
script on nfs server is:
kern.openfiles: 305
kern.openfiles: 305
kern.openfiles: 303
kern.openfiles: 299
kern.openfiles: 300
kern.openfiles: 300
kern.openfiles: 304
All seems fine here.
More information about the Kernel
mailing list