Still a bit oftopic, like the rest of the thread, but DTrace is only available since Solaris10 only.

- Noam

On 10/12/06, Yahav Biran < [EMAIL PROTECTED]> wrote:
Thanks Rami,
I would like to emphasis that we are sure that the JVM heap is not leaking
as we monitored it (simply by invoking the java process with -verbosegc
option). My problem is the OS (unix) heap process.

When you invoke the process map:
29753:  /export/home/mpowerv5/jdk/bin/java -server -mx1024m -ms512m
-XX:+Aggre
00010000     40K read/exec         /export/home/mpowerv5/jdk/bin/java
00028000      8K read/write/exec   /export/home/mpowerv5/jdk/bin/java
0002A000 142920K read/write/exec     [ heap ]
A7878000     32K read/write/exec     [ anon ]
A7978000     32K read/write/exec     [ anon ]

You can see the [ heap ] size 142920K. this number is increasing endlessly.

I would like to know what it contain.

Did anybody look for such memory leak?

Thanks
yahav

-----Original Message-----
From: Rami Rosen [mailto:[EMAIL PROTECTED]]
Sent: Thursday, October 12, 2006 9:55 AM
To: Yahav Biran
Cc: Linux-IL
Subject: Re: memory leak in Solaris process

Yahav,

I have to admit my sin in doing some kernel programming and
user space development recently in open solaris .
In fact, some of it is porting from linux to solaris
which even may sound worth in this mailing list...

Solaris is known for it's dynamic tracing functionality, also
known as DTrace.

You can also use DTrace with java prcoesses on solaris.

Please take a look at https://solaris10-dtrace-vm-agents.dev.java.net

You should act according to the java version you have
and the instructions there.

I had Java HotSpot(TM) Server VM (build 1.5.0_07-b03, mixed mode).
So I had to download dvm.zip and install it and configure it
according to the instructions there.

Running dtrace on a java process is simple:
After installing dvm, run the java process like this:
java -Xrundvmti:all SendCmdLoop &
then
find out your processId

run:
dtrace -n'dvmProcessId:::' -p ProcessId

thats it:

you get many messages, like "track_allocation:object-alloc",
_method_exit:method-return and more.
you can also activate DTrace with less probes (instead of
-Xrundvmti:all).

You may want also to look at the DTrace manual , which is
quite long.

In case you have a Mustang ( java 6/jdk 1.6 prerelease)
the  provider is different is a bit different, see in
that web site.

There is a syscall and signales tracker utility which is
built in in solaris called "truss". It may aslo help you.

Activation is simple: truss  -p processId.

Hope this helps.

Regards,
Rami Rosen



On 10/11/06, Yahav Biran <[EMAIL PROTECTED] > wrote:
>
>
> Hi,
> I'm running an instance of Weblogic on Solaris 8. when I monitoring the
> process resource usage using prstat I can see that it after a week the RSS
> size is growing until the service is really bad and then I restart the
> application.
> The application is a web application that connected to oracle DB using OCI
> client.
> When I view the process map (pmap PID) I can see that the size of the
(UNIX
> process)heap is growing. BUT when I monitoring the memory usage in the JVM
I
> can see that there is no memory leak as no OutOfMemoryError is arising
from
> the GC.
>
> i would like to have a way to monitor the usage of the UNIX process heap.
>
> I any body knows on such utility?
>
>
> Thanks
>    yahav
>
>
> =================================================================
> To unsubscribe, send mail to [EMAIL PROTECTED] with
> the word "unsubscribe" in the message body, e.g., run the command
> echo unsubscribe | mail [EMAIL PROTECTED]
>
>


=================================================================
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]


Reply via email to