How to find out what is using the native heap of a process running a JVM?

Hello,
I am not sure where to post this question so I am starting here.
I am troubleshooting a Java application using some native calls (32 bits Java running on Solaris 10). The size of the process (as reported by prstat) is slowly increasing day after day.
The size of the 'Java heap' is fixed at the start (-Xms and -Xmx are set to the same value on the command line when launching the Java app) and the GC is workling fine. No memory complaints from the Java side of the application.
It is the size of the 'native' heap (as reported by 'pmap') that is increasing:
root@mas01 # pmap 5382
5382:/apps/java/bin/java -server -Xms207M -Xmx207M -XX:MaxNewSize=24M -XX:N
00010000 64K r-x-- /apps/jdk1.5.0_19/bin/java
0002E000 16K rwx-- /apps/jdk1.5.0_19/bin/java
00032000 3896K rwx-- [ heap ]
00400000 389120K rwx-- [ heap ]
18000000 2784K rwx-- [ heap ]
DCAF4000 48K rw--R [ stack tid=169 ]
DCBF6000 40K rw--R [ stack tid=161 ]
DCCF8000 32K rw--R [ stack tid=160 ]
My first reaction was to search for a memory leak. Found a minor leak in the JVM with the ::findleak function (called within the mdb debugger). Upgraded to a later release of Java 5 (Java 1.5.0_19) where the leak is fixed but the heap is still increasing.
Many parts of the process allocate memory in the native heap. The JVM itself, the native calls made to a C++ library part of our Java application and maybe also some 3rd party software.
I would like to know what is the best way to find out what is consuming more and more memory in the native heap. I started looking a DTraces but I am new to this. I also thought maybe the Solaris Perftools might be of use but I never used them. Before plunging into a tool more or less blindly, I am asking for advices on how to tackle this issue. Can someone recommend a tool/method to see what is allocated in the heap?
Regards,
Stéphan
Edited by: StephanDupont on Sep 22, 2009 8:47 AM

After googling a lot I managed to run my application with libumem, generated a core file and succeeded to find some leak with mdb even if ::findleak reported nothing.
Does anyone knows if the ::findleak (you need libumem and mdb) is supposed to find leak in the native part of the memory and a Java application using the JNI interface?
Regards,
Stéphan

Similar Messages

  • How to find out what are all the change pointers assoicated for an idoc ??

    Hi ,
    How to find out what are all the change pointers activated for an idoc ??
    Thanks,
    Varma

    Verma,
    You can check what are the active Change Pointers for the message type in tcode <b>BD50</b>
    Use tcode <b>BD61</b> to check whether change pointers are active or not??
    Hope this helps..

  • How to find out what code called the procedure

    Hi,
    I'm doing an error logging api, that will log errors when it's called. What I wasn't to know is if there's a way to find out what procedure/function called the api?
    One way is to pass the function as a text variable but it would be cool if the api could find out who called it.
    Hope i made myself clear :-)

    I think you can use DBMS_UTILITY.FORMAT_CALL_STACK (I assume that's also what Tom K is using in his utility - with a nice wrapper around it).
    Look at this example:
    SQL>CREATE OR REPLACE procedure p as
      2  begin
      3   dbms_output.put_line(dbms_utility.format_call_stack);
      4  end;
      5  /
    Procedure created.
    SQL>CREATE OR REPLACE procedure p2 as
      2  begin
      3    p;
      4  end;
      5  /
    Procedure created.
    SQL>CREATE OR REPLACE procedure p3 as
      2  begin
      3    p2;
      4  end;
      5  /
    Procedure created.
    SQL>exec p3;
    ----- PL/SQL Call Stack -----
      object      line  object
      handle    number  name
    38aad05a8         3  procedure HRM.P
    38aaa6990         3  procedure HRM.P2
    38aa9f470         3  procedure HRM.P3
    38a6e9d88         1  anonymous block
    PL/SQL procedure successfully completed.
    SQL>

  • How to find out what is causing an error in a BPM process

    I have a very basic question and I can't figure it out from help.sap.com
    I have a BPM process deployed to a SAP NW Java BPM 7.40 system. It can be triggered with a web service call.
    It goes into error immediately. I go to NW Administrator > Operations > Process and Tasks > Manage Processes and see the process with status  "Error". But the "Error log" tab below is grayed out. I can't see any error message anywhere.
    How do I find out what is wrong?

    Ah, I didn't notice that on the history tab I can switch from Basic to Medium or Advanced, in Basic it was showing nothing. In Medium and Advanced it shows:
    Mapping failed
    com.sap.engine.services.jndi.persistent.exceptions720.NameNotFoundException: Object not found in lookup of test.sap.com.polreuse.ejbs.UUIDProviderLocal.
    java.lang.IllegalArgumentException: Could not lookup 'test.sap.com/bpmear/LOCAL/UUIDProvider/test.sap.com.polreuse.ejbs.UUIDProviderLocal' bean
    com.sap.mapping.lib.execution.api.exception.TExecutionException
    at EJB::test.sap.com/bpmear/LOCAL/UUIDProvider/test.sap.com.polreuse.ejbs.UUIDProviderLocal( StandardInvocation:invoker )
    at ( DeepExpression )
    at UUID( TerminalPart:expression )
    at result( BroadPart:child )
    at ( NarrowMapping )
    at com.sap.mapping.lib.execution.implementation.Compiler$StandardMappingFunction@241ade69( StandardInvocation:invoker )
    at ( DeepExpression )
    at MessageHeader( TerminalPart:expression )
    at http://sap.com/xi/SAPGlobal20/Global:NewLBrdngFSCreateRequest( BroadPart:child )
    at ( NarrowMapping )
    What could this mean? I didn't deploy all parts correctly or something like that?
    Also, where do I check the default trace?

  • How to find out who is using the shared library?

    Is there a way to find out who is listening to my music on my shared library and what they are listening to?

    After googling a lot I managed to run my application with libumem, generated a core file and succeeded to find some leak with mdb even if ::findleak reported nothing.
    Does anyone knows if the ::findleak (you need libumem and mdb) is supposed to find leak in the native part of the memory and a Java application using the JNI interface?
    Regards,
    Stéphan

  • How to find out what is in the web cache

    I have set up the web cache and its showing
    25% fresh hits, 25% cacheable misses and 50% non-cacheable misses and I want to look at what is not getting cached to see how to improve this ....
    But all I can see is stats of the cache and no details of what is in the cache...
    Any suggestions
    Rob

    Our upcoming release will include a feature which will tell you what's in the cache. This is a new feature, so we won't release it as part of a patch set, rather as part of the next dot release.

  • How to find out what is under the mouse pointer in a StyledDocument

    Hi all!
    I have a DefaultStyledDocument in a JTextPane.
    styles = new StyleContext();
    doc = new DefaultStyledDocument(styles);
    JTextPane p = new JTextPane(doc);
    i than add a view strings to the document using insertString, some of them using a style with an icon.
    The question now is: can i somehow determine which icon ( or at least which object, inserted by insertString ) is under current mouse position, without setting the caret to this location? or can i trigger an event when the user clicks on such an icon?
    thanks in advance for your help
    eabin

    Use this method :
    public int viewToModel(Point pt)
    and take a look at my answer in this Thread. I think it can give you an idea :
    http://forum.java.sun.com/thread.jsp?forum=57&thread=227390
    Denis

  • HT1391 Hi can anyone tell me how to find out what and when my last purchases were made from the App Store ? I think my kids used all my credit

    Hi can anyone tell me how to find out what and when my last purchases were made from the App Store ? I think my kids used all my credit

    .from iTunes, go to View > Show sidebar
    From sidebar > Itunes Store > Click top left on your Apple ID email address > Account > ...scroll down > Purchase History > View All

  • How to Find out what are the top 20 queries executed in the system

    Hi Guru's,
    I would like to know how to gather the information regarding the Top 20 queries used in the system per week, by a multicube.
    Note: I am using BI 7.0 and also Statistics are turned on.
    People have provided me the Cube name and table name last time but nothing seems to work.
    I do not have the query names and I just have my multiprovider name and with the help of that, I want to find out what are all the queries which were executed related to that multiprovider.
    Thanks and regards,

    Hi,
    Here is an idea for your request.
    Basically you can create a simple query on multiprovider 0TCT_MC01.
    Filter: you can use a variable for restriction of time ( calday, or calmonth) since you should be interested for a time period.
    Choose following characters into your objects:
    InfoProvider ( 0TCTIFPROV )  - you can create a variable for choosing infoprovider before query runs.
    *Tp.[Type of BI Application Object] 0TCTBISOTYP  = filter this with 'QUERY' or whatever your need is.
    *BI Application Object 0TCTBISBOBJ,  ( this will give you the name of the queries)
    In key figures choose,  Count for BI Appl. (0TCTWTCOUNT).
    (number for query run)
    Create a condition , for top 20.
    Hope this helps.
    Derya

  • How to find out what is the lock key for the computer

    How to find out what is the lock key for the computer?

    You don't.
    If you forgot or lost the password, all you can practically do is reset it.
    The manner in which you do so depends on what version of OS X you are running. The older versions utilize the reset password utility on your recovery/re-installation disk/drive.
    On Lion, you use the following technique to reset the Administrators password:
    Boot to your Lion Recovery Partition, by holding down the Option key while starting, and then selecting the Recovery HD as the boot choice.
    Once booted, at the top of the screen is a menu ..., select Utilities / Terminal from the menu bar.
    In the Terminal window, type “resetpassword” (without the quotes) and press return. A “Reset Password” window will open. Select your boot volume (your SSD drive) if it is not already selected. Select your administrators username from the menu labeled “Select the user account” if it is not already selected. Follow the prompts to reset the password. Restart the computer from the apple menu.

  • How do I find out what is in the cloud so I can delete it?

    This is a complete outrage.  All I did was support Apple and was told to sign in to cloud and now I am told I am using too much space.  No idea what this is about and no way to call because I cannot talk.  How do I find out what is in the cloud so I can delete it?   Is this e-mail, Word documents, or something else?  What the heck are they talking about?

    It's everything that's stored in icloud: email, backups, calendars, contacts, app data (including iwork documents), .... on and on.
    If you need to delete some data to recover some free storage...
    You'd have to go into the various apps on a device that is also stored on iCloud and begin trimming files.
    Backups:
    Go to Settings>iCloud>Storage & Backups>Manage Storage; there, tap the device you need info on and the resulting screen lists Backup Options with which apps store data on iCloud.  Turn off camera roll and any other apps that might have a lot of data.  Then delete the backup.  That will free up space.  Photos should be regularly synced to a computer (like you store photos from a digital camera) using either USB via iTunes (on a mac use iPhoto or Aperture to move them to an album) or using photo stream. Go to Settings>iCloud and turn
    Emails:
    Regarding emails, on the computer, move emails from mailboxes in icloud to those on the device.  That can also save a lot of space.
    Go to Settings>iCloud>Storage & Backups>Manage Storage
    From there you can find how much and which files are in a backup, and how much different apps use to store data files.  At the bottom of the screen is the size of the mail storage.
    Also see:  http://support.apple.com/kb/ht4847

  • How to find out which type of the driver is used in our application?

    Hi all,
    can anyone tell me how to find out which type of the driver is used in our application?
    Thanks in advance,
    Phoeniox

    Hi,
    Check out this...
    Class.forName("com.mysql.jdbc.Driver"); //if u r using MySql
    List drivers = Collections.list(DriverManager.getDrivers());
                   for(int i=0;i<drivers.size();i++)
                        Driver driver = (Driver)drivers.get(i);
                        String driverName = driver.getClass().getName();
                        System.out.println("Driver "+i+":::"+driverName);
    you need to load the driver and display in the same program.
    Then only you'l get the required result.
    prakhyath

  • HT1391 I have a new computer and want to sync my iPhone.  But it wants to wipe out what is already on my phone with another iTunes library.  How do I find out what is in the "library" before I say to wipe out my phone and sync?

    I have a new computer and want to sync my iPhone/iTunes.  But it wants to wipe out what is already on my phone with another iTunes library.  How do I find out what is in the "library" before I say yes to wipe out my phone and sync?

    See Recover your iTunes library from your iPod or iOS device.
    tt2

  • How to find out what the geniric short forms stand for?

    Hi if you see the ThreadLocal class in jdk1.6 it is written like this in doc. ThreadLocal<T> and if you see the method Class.forName() the return type is Class<?> i am just confused a littele bit. how to find out what this <T> and <?> stands for? I mean how do i know that what to pass in their place?

    [Start from Here|http://java.sun.com/docs/books/tutorial/extra/generics/index.html]

  • How to find out query name using Elements of the query builder.

    Hi SDNers,
    how to find out query name using Elements of the query .
    thanks,
    satyaa

    Hi,
    For having a look at the relation between BEx tables,check the link below:
    http://wiki.sdn.sap.com/wiki/display/BI/ExploretherelationbetweenBEx+Tables
    -Vikram

Maybe you are looking for

  • Why is notification center not working for mail?

    Im not receiving mail on notification center, why is that happening?

  • Logon script - local copy/cache?

    Does Windows keep a local copy of login script that comes from domain group policy? If yes, where is it? I ask because I found that some of my users are running an old version of login script that we revised long time ( a few months) ago. 

  • Pending Trasport request in DEV while Upgrade

    Hi all, I am doing upgradation from 3.5 to 7.0. Now we are in preparation phase. I am seeing around 15-20 customizing and workbench request pending in BI DEV server. My worry is whether those request need to be transported / delete before the actual

  • Configuring folder structure for custom url contents

    Hi Experts, We are trying to create a custom help link similar to the standard help links provided by SAP (example:  http://help.sap.com/saphelp_xrpm400/helpdata/en/AD/815F4283F26255E100000000A155106/content.htm). Our custom help link should look lik

  • What are system requirements for downloading CS 6

    What are the system requirements for downloading CS?  I have a MacBook Pro OS 10.6.8 - 64 Bit. Thanks. MICHAEL