Subject: bin/13657: rpcbind uses lots of file descriptors compared to portmap
To: None <gnats-bugs@gnats.netbsd.org>
From: Chuck Cranor <chuck@xxx.research.att.com>
List: netbsd-bugs
Date: 08/08/2001 16:48:38
>Number:         13657
>Category:       bin
>Synopsis:       rpcbind uses lots of file descriptors compared to portmap
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    bin-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Aug 08 13:45:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Chuck Cranor
>Release:        1.5.1
>Organization:
AT&T Labs-Research
>Environment:
i386, etc.
>Description:

	rpcbind uses lots of stream connections, where as portmap does not.
	lukem asked me to send-pr this.

	he says that it appears that for each service that registers 
	that there's at least 3 FDs opened, and maybe more if ipv6 is 
	used as well.

	how scaleable is rpcbind as compared to portmap?

>How-To-Repeat:

	fstat | grep rpcbind | wc -l
	netstat | grep /var/run/rpcbind.sock

	(compare to a portmap system which has only two network sockets)

rpcbind:
root     rpcbind      121   wd /             2 drwxr-xr-x     512 r 
root     rpcbind      121    0 /         11152 crw-rw-rw-    null rw
root     rpcbind      121    1 /         11152 crw-rw-rw-    null rw
root     rpcbind      121    2 /         11152 crw-rw-rw-    null rw
root     rpcbind      121    3* internet6 dgram udp c0ddd000 *:0
root     rpcbind      121    4* unix stream c0dfa100
root     rpcbind      121    5* internet6 dgram udp c0e33e00 *:111
root     rpcbind      121    6* internet6 dgram udp c0e33700 *:601
root     rpcbind      121    7* internet6 stream tcp c0e59000 *:111
root     rpcbind      121    8* internet dgram udp c0e32000 *:111
root     rpcbind      121    9* internet dgram udp c0e32060 *:1022
root     rpcbind      121   10* internet stream tcp c0e590b0 *:111
root     rpcbind      121   11* unix stream c0dfa640 <-> c0dfa700
root     rpcbind      121   12* unix stream c0dfa3c0 <-> c0dfa0c0
root     rpcbind      121   13* unix stream c0e5c880 <-> c0e5c8c0
root     rpcbind      121   14* unix stream c0e5c580 <-> c0e5c840
root     rpcbind      121   15* unix stream c0e5c980 <-> c0e5c9c0
root     rpcbind      121   16* unix stream c0e5c780 <-> c0e5c940
root     rpcbind      121   17* unix stream c0e5c540 <-> c0e5c7c0
root     rpcbind      121   18* unix stream c0e5c4c0 <-> c0e5c500

portmap:
root     portmap      156   wd /             2 drwxr-xr-x    1024 r 
root     portmap      156    0 /         11725 crw-rw-rw-    null rw
root     portmap      156    1 /         11725 crw-rw-rw-    null rw
root     portmap      156    2 /         11725 crw-rw-rw-    null rw
root     portmap      156    3* internet dgram udp c0c7805c *:111
root     portmap      156    4* internet stream tcp c0c80000 *:111


>Fix:

lukem is digging into the rpc code...


>Release-Note:
>Audit-Trail:
>Unformatted: