Seemingly large memory usage by rpc.nisd

Hi folks,

I have an UE 450 running Solaris 8 2/02. This machine is a NIS+ root master,
with about 100 users in the passwd table. The machine has 4 GB RAM, and 2 GB
swap. Keeping an eye on the top command, I noticed that the SIZE of the
rpc.nisd process was increasing and pretty large. Uptime is now 38 days.

load averages: 3.95, 3.98, 3.79 14:01:02
134 processes: 124 sleeping, 2 running, 5 zombie, 3 on cpu
CPU states: 20.4% idle, 62.2% user, 14.3% kernel, 3.1% iowait, 0.0% swap
Memory: 4096M real, 3297M free, 1262M swap in use, 4325M swap free

PID USERNAME THR PRI NICE SIZE RES STATE TIME CPU COMMAND
29333 c 1 10 0 3176K 2632K run 3:26 21.94% mapIndexer
29344 c 1 58 0 19M 6576K sleep 0:13 1.70% sort
21649 v 1 58 0 10M 8736K sleep 0:13 0.74% emacs
19853 root 1 58 0 3920K 2544K run 0:31 0.66% sshd
3342 c 1 20 0 4168K 3392K sleep 0:18 0.42% traceNCIprocess
20164 c 1 20 0 3512K 2776K sleep 2:20 0.33% traceNCIprocess
139 root 4 44 0 983M 5080K sleep 442:31 0.20% rpc.nisd
8001 root 1 58 0 5344K 4200K sleep 16:43 0.19% xterm
566 l 1 58 0 2440K 1992K sleep 0:01 0.19% ssh
13842 s 1 0 2 1944K 1504K sleep 146:13 0.18% httpd

I had a look on SunSolve, and it seems patch 110511-02 fixed a leak. I have
110511-03 installed. 110511-04 is also available, but only seems to deal with
large RPC requests.

A puzzling thing (for me) is the output of swap:
sun_root$ swap -s
total: 270200k bytes allocated + 1077768k reserved = 1347968k used, 4372624k available
sun_root$ swap -l
swapfile dev swaplo blocks free
/dev/dsk/c0t0d0s1 32,1 16 2097344 2097344
/dev/dsk/c7t1d0s1 32,969 16 2100384 2100384

swap -l seems to think no swap is used, while swap -s pretends ~270M are
allocated. (According to the swap manpage:
free The number of 512-byte blocks in this area that
are not currently allocated.)

So, is rpc.nisd leaking memory ? Is it just some artefact of page mapping ?
Anybody got the scoop ?

TIA for any help.

Regards,
Christian

[2305 byte] By [CodeProf.com] at [2007-12-24 22:58:00]