Jason Jiang - Solaris China Team <Jason.Jiang at Sun.COM> wrote:

    JJ> Dan Mick ??:
    >> jason jiang wrote:
    >> 
    >>> Hi,
    >>> When I run some network stress testing, I occasionally met a situation 
that the kernel memory was used up(around 99%). How can I debug who hold so 
many memory? And I can not find memory leaks after 'reboot -d'. 
    >>> 
    >> 
    >> Search the mdb manual for "findleaks" and "kmausers".
    >> 
    JJ> I have done the findleaks and found there was no leaks. For the 
    JJ> kmausers, is it possible to list all the memory users includes user 
mode 
    JJ> programe?

Memory is not necessarily leaking - it may be tied up in network
buffers.

You may quickly check how many messages you have on the read queues of
all streams:

::stdata -q | ::str2wrq | ::q2otherq | \
         ::print queue_t q_first| ::walk b_next| ::walk b_cont ! wc -l 

You can see more detail with

::stdata -q | ::str2wrq | ::q2otherq | \
         ::print queue_t q_first| ::walk b_next| ::walk b_cont | ::mblk


Just looking at 

::stdata -q | ::stream

shows all streams state, you need to look at the cnt value looking for
large piles of messages.

- akolb

Reply via email to