Subject: nfsd and process load sharing
To: None <tech-kern@netbsd.org>
From: Simon Burge <simonb@netbsd.org>
List: tech-kern
Date: 06/04/1999 13:58:40
Let me start by saying I really don't know how the guts of NFS works...

I've noticed that on NetBSD machines that the CPU usage by "nfsd"s seems
to be "non-averaging", compared to say an Ultrix NFS server.  Compare:

	(NETBSD) fhfss:~ 19# ps auxww | grep nfsd | sort +1n
	root       125  0.0  0.8    36  164 ??  Is   0:05.65 nfsd: master (nfsd)
	root       131 19.4  0.4    24   84 ??  SL 364:29.32 nfsd: server (nfsd)
	root       132  0.0  0.4    24   84 ??  SL  16:49.24 nfsd: server (nfsd)
	root       133  0.0  0.4    24   84 ??  SL   6:11.23 nfsd: server (nfsd)
	root       134  0.0  0.4    24   84 ??  SL   0:34.01 nfsd: server (nfsd)
	root       135  0.0  0.4    24   84 ??  IL   0:00.06 nfsd: server (nfsd)
	root       136  0.0  0.4    24   84 ??  SL   0:03.84 nfsd: server (nfsd)
	root       137  0.0  0.4    24   84 ??  IL   0:00.15 nfsd: server (nfsd)
	root       138  0.0  0.4    24   84 ??  IL   0:00.07 nfsd: server (nfsd)
	root       139  0.0  0.4    24   84 ??  IL   0:00.07 nfsd: server (nfsd)
	root       140  0.0  0.4    24   84 ??  IL   0:00.07 nfsd: server (nfsd)
	root       141  0.0  0.4    24   84 ??  IL   0:00.05 nfsd: server (nfsd)
	root       142  0.0  0.4    24   84 ??  IL   0:00.06 nfsd: server (nfsd)
	root       143  0.0  0.4    24   84 ??  IL   0:00.06 nfsd: server (nfsd)
	root       144  0.0  0.4    24   84 ??  IL   0:00.05 nfsd: server (nfsd)
	root       145  0.0  0.4    24   84 ??  IL   0:00.06 nfsd: server (nfsd)
	root       146  0.0  0.4    24   84 ??  IL   0:00.06 nfsd: server (nfsd)
	root       147  0.0  0.4    24   84 ??  IL   0:00.07 nfsd: server (nfsd)
	root       148  0.0  0.4    24   84 ??  IL   0:00.06 nfsd: server (nfsd)
	root       149  0.0  0.4    24   84 ??  IL   0:00.06 nfsd: server (nfsd)
	root       150  0.0  0.4    24   84 ??  IL   0:00.05 nfsd: server (nfsd)

with:

	(ULTRIX) nsw010:~ 2> ps auxww | grep nfsd | sort +1n
	root       205  0.0  0.3  152   72 ?  S    858:32 /etc/nfsd 18
	root       206  0.0  0.3  152   72 ?  S    850:34 /etc/nfsd 18
	root       207  0.0  0.3  152   72 ?  S    842:29 /etc/nfsd 18
	root       208  0.0  0.3  152   72 ?  S    868:42 /etc/nfsd 18
	root       209  0.0  0.3  152   72 ?  S    849:46 /etc/nfsd 18
	root       210  0.0  0.3  152   72 ?  S    852:17 /etc/nfsd 18
	root       211  0.0  0.3  152   72 ?  S    866:14 /etc/nfsd 18
	root       212  0.0  0.3  152   72 ?  S    847:25 /etc/nfsd 18
	root       213  0.0  0.3  152   72 ?  S    874:31 /etc/nfsd 18
	root       214  0.0  0.3  152   72 ?  S    850:24 /etc/nfsd 18
	root       215  0.0  0.3  152   72 ?  S    839:54 /etc/nfsd 18
	root       216  0.0  0.3  152   72 ?  S    845:37 /etc/nfsd 18
	root       217  0.0  0.3  152   72 ?  S    853:45 /etc/nfsd 18
	root       218  0.0  0.3  152   72 ?  S    843:29 /etc/nfsd 18
	root       219  0.0  0.3  152   72 ?  S    844:21 /etc/nfsd 18
	root       220  0.0  0.3  152   72 ?  D    829:16 /etc/nfsd 18
	root       221  0.0  0.3  152   72 ?  S    845:44 /etc/nfsd 18
	root       222  0.0  0.3  152   72 ?  S    848:24 /etc/nfsd 18

Does this actually make a difference in the grand scheme of things?  I
guess we're headed towards using kernel threads for nfs anyway...

Simon.