geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vamsavardhana Reddy" <c1vams...@gmail.com>
Subject Re: How to get memory statistics from a remote Geronimo runtime?
Date Wed, 05 Dec 2007 07:40:39 GMT
On Dec 4, 2007 11:23 PM, Anita Kulshreshtha <a_kulshre@yahoo.com> wrote:

>   It is not clear to me if this is part of the earlier code or a
> separate program. If it is part of the JMX code, then Runtime is from
> the local jvm not remote. The non heap Memory for this program in
> either case is negligible.

I got the code to run in a jsp.  So, the statistics it shows are indeed from
Geronimo's JVM.



>
>   You could start G with -Dcom.sun.management.jmxremote. Start
> jconsole and click on the Memory tab to get the whole picture.

Will try this.  Thank you.


>
>   Hope this is helpful
>
> Thanks
> Anita
>
> --- Vamsavardhana Reddy <c1vamsi1c@gmail.com> wrote:
>
> > I don't know why the non heap memory is missing in the equations.
> > The
> > equations I gave are based what I observed by running the following
> > code.
> >
> >             MemoryMXBean memmxbean =
> > ManagementFactory.getMemoryMXBean();
> >             Runtime rt = Runtime.getRuntime();
> >             MemoryUsage memUsage = memmxbean.getHeapMemoryUsage();
> >             System.err.println("init="+memUsage.getInit());
> >             System.err.println("max="+memUsage.getMax());
> >             System.err.println("used="+memUsage.getUsed());
> >             System.err.println("committed="+memUsage.getCommitted());
> >             System.err.println("free="+(memUsage.getCommitted()-
> > memUsage.getUsed()));
> >             System.err.println("TotalMemory = "+rt.totalMemory());
> >             System.err.println("MaxMemory = "+rt.maxMemory());
> >             System.err.println("FreeMemory = "+rt.freeMemory());
> >
> > System.err.println("Used="+(rt.totalMemory()-rt.freeMemory()));
> >
> > ++Vamsi
> >
> > On Dec 4, 2007 8:57 PM, Anita Kulshreshtha <a_kulshre@yahoo.com>
> > wrote:
> >
> > >   IIUC,
> > >
> > >
> >
>
> http://java.sun.com/j2se/1.5.0/docs/api/java/lang/management/MemoryMXBean.html
> > >   runtime values are sum of values from Heap and non heap memory.
> > In
> > > other words you need to add contribution from non heap Memory to
> > all 4
> > > equations.
> > >
> > > Thanks
> > > Anita
> > >
> > > --- Vamsavardhana Reddy <c1vamsi1c@gmail.com> wrote:
> > >
> > > > I don't know if it is necessary to add the statistics from
> > Runtime.
> > > > Here is
> > > > the relationship I see between the stats from Runtime and those
> > got
> > > > from
> > > > MemoryMXBean.getHeapMemoryUsage()
> > > >
> > > > Runtime.totalMemory() == MemoryUsage.getCommitted()
> > > > Runtime.maxMemory() == MemoryUsage.getMax()
> > > > Runtime.freeMemory() == MemoryUsage.getCommitted() -
> > > > MemoryUsage.getUsed()
> > > > Runtime.totalMemory() - Runtime.freeMemory() ==
> > MemoryUsage.getUsed()
> > > >
> > > > ++Vamsi
> > > >
> > > >
> > > > On Dec 4, 2007 6:51 PM, Anita Kulshreshtha <a_kulshre@yahoo.com>
> > > > wrote:
> > > >
> > > > >   If you are interested in usedMemory and maxMemory as given by
> > > > > Runtime, we could add that again. The JVM Stats give a rough
> > > > estimate
> > > > > of heap memory only.
> > > > >
> > > > > Thanks
> > > > > Anita
> > > > >
> > > > > --- Vamsavardhana Reddy <c1vamsi1c@gmail.com> wrote:
> > > > >
> > > > > > I am wondering if the following (which works) is the correct
> > way
> > > > to
> > > > > > get
> > > > > > maxHeapSize and usedMemory from a remote Geronimo server.
> > > > > >
> > > > > > import
> > > > > >
> > org.apache.geronimo.management.stats.BoundedRangeStatisticImpl;
> > > > > >
> > > > > >         Map map = new HashMap();
> > > > > >         map.put("jmx.remote.credentials", new String[] {user,
> > > > > > password});
> > > > > >         JMXServiceURL address = new JMXServiceURL(
> > > > > >                 "service:jmx:rmi:///jndi/rmi://"+host+ ":" +
> > port
> > > > +
> > > > > > "/JMXConnector");
> > > > > >         JMXConnector jmxConnector =
> > > > > > JMXConnectorFactory.connect(address,
> > > > > > map);
> > > > > >         mbServerConnection =
> > > > jmxConnector.getMBeanServerConnection();
> > > > > >         objName = ObjectName.getInstance
> > > > > > ("geronimo:J2EEServer=geronimo,name=JVM,j2eeType=JVM");
> > > > > >         Stats stats = (Stats)
> > > > > > mbServerConnection.getAttribute(objName,
> > > > > > "stats");
> > > > > >          BoundedRangeStatisticImpl statistic =
> > > > > > (BoundedRangeStatisticImpl)
> > > > > > stats.getStatistic("HeapSize");
> > > > > >         long maxMemory = statistic.getUpperBound();
> > > > > >         long usedMemory = statistic.getCurrent();
> > > > > >
> > > > > > Is this ok?  Or, is there a better way?
> > > > > >
> > > > > > ++Vamsi
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > >
> > >
> > >
> >
>
> ____________________________________________________________________________________
> > > > > Be a better pen pal.
> > > > > Text or chat with friends inside Yahoo! Mail. See how.
> > > > > http://overview.mail.yahoo.com/
> > > > >
> > > >
> > >
> > >
> > >
> > >
> > >
> >
>
> ____________________________________________________________________________________
> > > Be a better sports nut!  Let your teams follow you
> > > with Yahoo Mobile. Try it now.
> > > http://mobile.yahoo.com/sports;_ylt=At9_qDKvtAbMuh1G1SQtBI7ntAcJ
> > >
> >
>
>
>
>
>  ____________________________________________________________________________________
> Be a better friend, newshound, and
> know-it-all with Yahoo! Mobile.  Try it now.
> http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ
>
>

Mime
View raw message