P
Paul Koufalis
Guest
Did you try to run proGetStack periodically through the day? Perhaps you are loading more and more persistent procedures? Also, have you looked at pmap to see what kind of memory is growing? You'll see open files, "shmid" which is DB shared memory (assuming the agents are connected to a DB in shared memory mode) then a bunch of "anon". Track the output to see what changes throughout the day. Also look at the difference between pmap and pmap -x output. I'm going by memory here, but if I do remember correctly, it is the "Dirty" column in pmap -x which is actual memory used for anon lines. Example: $ pmap -x 11763 | grep -i -e Kbytes -e anon -e stack Address Kbytes RSS Dirty Mode Mapping 00000000011f7000 2944 148 148 rwx-- [ anon ] 00000000011f7000 2944 0 0 rwx-- [ anon ] 0000000003486000 888 620 620 rwx-- [ anon ] 0000000003486000 888 0 0 rwx-- [ anon ] This output is truncated, but looking at the above 4 lines only it looks like this PID is using 2944+888 Kb of mem (watch out for duplicate addresses), but really it's only using 148+620. If I do the real sums of anon lines, this is what I get: sum(Kbytes) = 4292, sum(RSS)=848, sum(Dirty)=844 For fun, if I remove the greps to include shared objects like files and DB shared memory segments: sum(Kbytes) = 90828, sum(RSS)=13716, sum(Dirty)=2292 Per the KB Progress KB - How much memory is uniquely in use by a process? PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ 11763 test 20 0 90824 13m 11m R 33.2 0.1 609:20.71 _progres you would count 2 MB, but I'm skeptical. pmap is a much more detailed view.
Continue reading...
Continue reading...