understanding pmap
ESGLinux
esggrupos at gmail.com
Mon Mar 8 18:44:19 UTC 2010
H
2010/3/4 Yong Huang <yong321 at yahoo.com>
> > I?m looking for a memory problem on a system using the pmap command.
> >
> > This is an output:
> > # pmap -d 4302
> > #
> .....
> > 49770000 128896 rwx-- 0000000049770000 000:00000 [ anon ]
> > 51550000 1398144 rwx-- 0000000051550000 000:00000 [ anon ]
> > a6ab0000 172288 rwx-- 00000000a6ab0000 000:00000 [ anon ]
> > b4612000 8636 r-xs- 0000000000000000 068:00002 charsets.jar
> .....
> > mapped: 2391764K writeable/private: 2217000K shared: 158336K
> >
> > I have a lot of used memory and the line that takes my attention is this:
> > 51550000 1398144 rwx-- 0000000051550000 000:00000 [ anon ]
> >
> > But now I don?t know how to handle it. What can I do with this info? how
> can
> > I know why there is so much memory there?
> >
> > Thanks in advance
> >
> > ESG
>
> It's always a good idea to tell us your Red Hat and kernel version. On any
> slightly newer version, you can see more details about any memory segment
> in smaps pseudo file under /proc/<pid>. Your 1.4 GB anonymous memory is
> allocated private to that process. Some programs are written in a way to use
> lots of memory for data processing. Other than asking the developer to
> change the code, there's not much you can do. If they can't do it and you
> have multiple such processes running at the same time, ask the developer to
> see if they can rewrite to use shared memory, or at least a large portion of
> it as shared.
>
> If the memory keeps growing and never comes down, that's another issue.
> Tell the developer he must fix the memory leak.
>
> Yong Huang
>
> Hi,
the kernel I have is this:
Linux server 2.6.9-42.0.10.ELsmp #1 SMP Fri Feb 16 17:17:21 EST 2007 i686
i386 GNU/Linux
The version of Red hat is:
more redhat-release
Red Hat Enterprise Linux AS release 4 (Nahant Update 4)
I have run the comando pmap -d 4302 again and here is the output:
....
414fa000 336 rwx-- 00000000414fa000 000:00000 [ anon ]
4154e000 4 rwx-- 000000004154e000 000:00000 [ anon ]
4154f000 145284 rwx-- 000000004154f000 000:00000 [ anon ]
4a330000 116864 rwx-- 000000004a330000 000:00000 [ anon ]
51550000 1398144 rwx-- 0000000051550000 000:00000 [ anon ]
a6ab0000 172224 rwx-- 00000000a6ab0000 000:00000 [ anon ]
b12e0000 2496 rwx-- 00000000b12e0000 000:00000 [ anon ]
b1550000 4 r-x-- 0000000000000000 068:00002 librmi.so
b1551000 4 rwx-- 0000000000000000 068:00002 librmi.so
b1552000 764 rwx-- 00000000b1552000 000:00000 [ anon ]
b1611000 4 rwx-- 00000000b1611000 000:00000 [ anon ]
b1612000 48704 rwx-- 00000000b1612000 000:00000 [ anon ]
b45a2000 448 rwx-- 00000000b45a2000 000:00000 [ anon ]
b4612000 8636 r-xs- 0000000000000000 068:00002 charsets.jar
b4e81000 84 r-xs- 0000000000000000 068:00002 jce.jar
b4e96000 532 r-xs- 0000000000000000 068:00002 jsse.jar
....
mapped: 2690360K writeable/private: 2578232K shared: 94876K
the line I thought it was a problem hasn´t increased at all but the total
memory has increased a lot.
I have a lot of lines like this:
3a136000 12 --x-- 000000003a136000 000:00000 [ anon ]
3a139000 504 rwx-- 000000003a139000 000:00000 [ anon ]
3a1b7000 12 --x-- 000000003a1b7000 000:00000 [ anon ]
3a1ba000 504 rwx-- 000000003a1ba000 000:00000 [ anon ]
3a238000 12 --x-- 000000003a238000 000:00000 [ anon ]
3a23b000 504 rwx-- 000000003a23b000 000:00000 [ anon ]
3a2b9000 12 rwx-- 000000003a2b9000 000:00000 [ anon ]
3a2bc000 504 rwx-- 000000003a2bc000 000:00000 [ anon ]
3a33a000 12 rwx-- 000000003a33a000 000:00000 [ anon ]
3a33d000 504 rwx-- 000000003a33d000 000:00000 [ anon ]
3a3bb000 12 --x-- 000000003a3bb000 000:00000 [ anon ]
3a3be000 504 rwx-- 000000003a3be000 000:00000 [ anon ]
3a43c000 12 --x-- 000000003a43c000 000:00000 [ anon ]
Looking at the file:
/proc/4302/maps I don´t see anything that gives me any idea.
How can I detect the memory leak looking at this? How can I know where is
the memory?
Thanks,
ESG
More information about the redhat-list
mailing list