On Sat, Apr 05, 2014 at 08:10:41AM -0700, Paul Goyette wrote: > I still have occassional lock-ups on my system which appear to be a result > of MBuf Cluster exhaustion. Just looking at netstat output, it shows that > network is using about 554. Yet vmstat -m shows more than 1000 in use. > > # netstat -m > 553 mbufs in use: > 541 mbufs allocated to data > 11 mbufs allocated to packet headers > 1 mbufs allocated to socket names and addresses > 98 calls to protocol drain routines > # vmstat -mW | grep '^[MNm]' > Memory resource pool statistics > Name Size Requests Fail Releases InUse Avail Pgreq > Pgrel Npage PageSz Hiwat Minpg Maxpg Idle Flags Util > mbpl 512 32661 0 31465 1196 44 391 > 236 155 4096 287 2 inf 3 0x000 96.5% > mclpl 2048 27746 0 26731 1015 9 1644 > 1132 512 4096 865 4 524274 4 0x000 99.1% > mutex 64 4642962 0 2951894 1691068 604715 36471 > 30 36441 4096 36471 0 inf 1 0x040 72.5% > # > > > So, what is using the additional ~450 MBuf Clusters?
I found netstat -m to not be so reliable as well here. I'm tracking down a mbuf leak (in netbsd-6) and so far I found that eventually IFQ_ENQUEUE() could be called without KERNEL_LOCK held, while the queue is only protected by a splfoo() call. one is from ipfilter, and one from carp(4). Are you using one of theses ? You could also build a kernel with options MBUFTRACE and look at netstat -mssv (this one seems reliable). This helped me spot these problems. -- Manuel Bouyer <[email protected]> NetBSD: 26 ans d'experience feront toujours la difference --
