Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: MBuf clusters - what uses them?



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 <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference
--


Home | Main Index | Thread Index | Old Index