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]
