What is the difference between Memory Usage and Heap Usage in my JVMMetrics ?

Discussion in 'Java' started by Krist, Feb 8, 2010.

  1. Krist

    Krist Guest

    Hi all,

    In my Apps Server console (OC4J) JVM Metrics, there are two columns
    about memory :

    Memory Usage (MB) -> Shows the amount of physical memory used by the
    JVM.
    Heap Usage (MB) -> Shows the amount of heap space used by the
    JVM.

    (heap usage seems to be up and down, but memory usage is never going
    down, even when all user already loggout.)

    What are the difference between the two ?

    Thank you for your help,
    xtanto
     
    Krist, Feb 8, 2010
    #1
    1. Advertising

  2. Krist

    Roedy Green Guest

    Re: What is the difference between Memory Usage and Heap Usage in my JVM Metrics ?

    On Mon, 8 Feb 2010 15:08:41 -0800 (PST), Krist <>
    wrote, quoted or indirectly quoted someone who said :

    >
    >(heap usage seems to be up and down, but memory usage is never going
    >down, even when all user already loggout.)
    >
    >What are the difference between the two ?


    Your variables you allocate with new go on the heap. Other memory use
    includes the class files, the machine language equivalents of the
    class files, the native code for the interpreter/hot spot.
    --
    Roedy Green Canadian Mind Products
    http://mindprod.com

    Every compilable program in a sense works. The problem is with your unrealistic expections on what it will do.
     
    Roedy Green, Feb 9, 2010
    #2
    1. Advertising

  3. Krist

    Arne Vajhøj Guest

    Re: What is the difference between Memory Usage and Heap Usage inmy JVM Metrics ?

    On 08-02-2010 18:08, Krist wrote:
    > In my Apps Server console (OC4J) JVM Metrics, there are two columns
    > about memory :
    >
    > Memory Usage (MB) -> Shows the amount of physical memory used by the
    > JVM.
    > Heap Usage (MB) -> Shows the amount of heap space used by the
    > JVM.
    >
    > (heap usage seems to be up and down, but memory usage is never going
    > down, even when all user already loggout.)
    >
    > What are the difference between the two ?


    I will guess that:

    memory usage = memory the JVM has allocated from the OS

    heap usage = memory your app has allocated from the JVM

    With two points:

    1) the JVM need memory for internal stuff so memory usage
    is greater than heap usage
    2) even if your app releases memory then the JVM may not
    release it to the OS but keep it around just in case
    you will need it again

    Arne
     
    Arne Vajhøj, Feb 9, 2010
    #3
  4. Krist

    Krist Guest

    Re: What is the difference between Memory Usage and Heap Usage in myJVM Metrics ?

    On 9 Feb, 08:09, Arne Vajhøj <> wrote:
    > On 08-02-2010 18:08, Krist wrote:
    >
    > > In my Apps Server console (OC4J) JVM Metrics,  there are two columns
    > > about memory :

    >
    > > Memory Usage (MB)   ->  Shows the amount of physical memory used by the
    > > JVM.
    > > Heap Usage (MB)       ->  Shows the amount of heap space used by the
    > > JVM.

    >
    > > (heap usage seems to be up and down, but memory usage is never going
    > > down, even when all user already loggout.)

    >
    > > What are the difference between the two ?

    >
    > I will guess that:
    >
    > memory usage = memory the JVM has allocated from the OS
    >
    > heap usage = memory your app has allocated from the JVM
    >
    > With two points:
    >
    > 1) the JVM need memory for internal stuff so memory usage
    >     is greater than heap usage
    > 2) even if your app releases memory then the JVM may not
    >     release it to the OS but keep it around just in case
    >     you will need it again
    >
    > Arne


    Hi sirs,
    Thank you for your reply.

    So, is it only the heap area that I can tune ? (GC & Memory leak)

    How can I also tune the 'memory for internal stuff' usage ?

    Thank you,
    Krist
     
    Krist, Feb 9, 2010
    #4
  5. Krist

    Arne Vajhøj Guest

    Re: What is the difference between Memory Usage and Heap Usage inmy JVM Metrics ?

    On 08-02-2010 20:15, Krist wrote:
    > On 9 Feb, 08:09, Arne Vajhøj<> wrote:
    >> On 08-02-2010 18:08, Krist wrote:
    >>> In my Apps Server console (OC4J) JVM Metrics, there are two columns
    >>> about memory :

    >>
    >>> Memory Usage (MB) -> Shows the amount of physical memory used by the
    >>> JVM.
    >>> Heap Usage (MB) -> Shows the amount of heap space used by the
    >>> JVM.

    >>
    >>> (heap usage seems to be up and down, but memory usage is never going
    >>> down, even when all user already loggout.)

    >>
    >>> What are the difference between the two ?

    >>
    >> I will guess that:
    >>
    >> memory usage = memory the JVM has allocated from the OS
    >>
    >> heap usage = memory your app has allocated from the JVM
    >>
    >> With two points:
    >>
    >> 1) the JVM need memory for internal stuff so memory usage
    >> is greater than heap usage
    >> 2) even if your app releases memory then the JVM may not
    >> release it to the OS but keep it around just in case
    >> you will need it again


    > So, is it only the heap area that I can tune ? (GC& Memory leak)
    >
    > How can I also tune the 'memory for internal stuff' usage ?


    I don't think you have much control over what the JVM use for
    itself and for byte code and JIT'ed code.

    Arne
     
    Arne Vajhøj, Feb 9, 2010
    #5
  6. Krist

    Roedy Green Guest

    Re: What is the difference between Memory Usage and Heap Usage in my JVM Metrics ?

    On Mon, 8 Feb 2010 17:15:54 -0800 (PST), Krist <>
    wrote, quoted or indirectly quoted someone who said :

    >How can I also tune the 'memory for internal stuff' usage ?


    see http://mindprod.com/jgloss/javaexe.html
    for some of the parameters you can tweak.
    Follow links to some even more esoteric ones.

    You can also use Jet which adjusts memory usage as it runs in some
    intelligent way.
    see http://mindprod.com/jgloss/jet.html
    --
    Roedy Green Canadian Mind Products
    http://mindprod.com

    Every compilable program in a sense works. The problem is with your unrealistic expections on what it will do.
     
    Roedy Green, Feb 9, 2010
    #6
  7. Krist

    Roedy Green Guest

    Re: What is the difference between Memory Usage and Heap Usage in my JVM Metrics ?

    On Mon, 8 Feb 2010 17:15:54 -0800 (PST), Krist <>
    wrote, quoted or indirectly quoted someone who said :

    >How can I also tune the 'memory for internal stuff' usage ?


    Try a variety of constellations of options and see which actually
    works better. Bigger is not necessarily better. What is best depends
    on your machine and what else in running in your machine at the time.
    --
    Roedy Green Canadian Mind Products
    http://mindprod.com

    Every compilable program in a sense works. The problem is with your unrealistic expections on what it will do.
     
    Roedy Green, Feb 9, 2010
    #7
  8. Krist

    Lew Guest

    Re: What is the difference between Memory Usage and Heap Usage inmy JVM Metrics ?

    Krist wrote:
    >> How can I also tune the 'memory for internal stuff' usage ?


    Read the documentation.

    <http://java.sun.com/docs/hotspot/gc5.0/gc_tuning_5.html>
    <http://java.sun.com/javase/6/docs/technotes/guides/vm/gc-ergonomics.html
    <http://java.sun.com/performance/reference/whitepapers/tuning.html>

    You can search java.sun.com with its search options, or use your favorite
    search engine.

    In addition to the various JVM options, how you code your programs affects
    memory usage. Java is generally optimized for frequent creation of
    short-lived objects, which supports a programming style of least-scoped
    variables, a best practice anyway.

    --
    Lew
     
    Lew, Feb 9, 2010
    #8
  9. Re: What is the difference between Memory Usage and Heap Usage inmy JVM Metrics ?

    On 09-02-2010 10:56, Lew wrote:
    > Krist wrote:
    >>> How can I also tune the 'memory for internal stuff' usage ?

    >
    > Read the documentation.
    >
    > <http://java.sun.com/docs/hotspot/gc5.0/gc_tuning_5.html>
    > <http://java.sun.com/javase/6/docs/technotes/guides/vm/gc-ergonomics.html
    > <http://java.sun.com/performance/reference/whitepapers/tuning.html>
    >
    > You can search java.sun.com with its search options, or use your
    > favorite search engine.
    >
    > In addition to the various JVM options, how you code your programs
    > affects memory usage. Java is generally optimized for frequent creation
    > of short-lived objects, which supports a programming style of
    > least-scoped variables, a best practice anyway.


    The 'memory for internal stuff' is all the memory except
    the java variables in heap that gets GC'ed.

    As far as I know there are very few options to control that.

    Arne
     
    Arne Vajhøj, Feb 10, 2010
    #9
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. jakk
    Replies:
    4
    Views:
    12,511
  2. Sean Cook
    Replies:
    15
    Views:
    48,063
    Rolf Magnus
    Jan 29, 2004
  3. Jorge Rivera
    Replies:
    10
    Views:
    5,726
    John Harrison
    May 10, 2004
  4. Zach
    Replies:
    9
    Views:
    711
    Thad Smith
    Feb 20, 2007
  5. Veeru
    Replies:
    12
    Views:
    1,331
    Default User
    Sep 14, 2006
Loading...

Share This Page