You could also try this tool (I haven't used it): http://www.hyperic.com/products/
It uses this library http://www.hyperic.com/products/sigar.html which can be downloaded from Sourceforge. Michele Michael Echerer wrote: > Shimol Shah wrote: > Hi, >> Hi, >> >> I am trying to look for a way to programmtically find CPU resources used >> and >> memory used for indivudual web applications. I have given it many tries on >> Google but only thing I could find was some third party tool vendors that >> give solutions to performance monitoring. Instead what I am looking for is >> the programmatic way of knowing CPU and memory usage by a particular web >> application. >> >> I would really appreciate if someone can point me to a right direction. I >> can work it out form there. >> >> Thanks, >> Shimol. >> > Try the Java 5.0+ javax.management API: > http://java.sun.com/j2se/1.5.0/docs/api/index.html?javax/management/package-summary.html > http://download.java.net/jdk6/docs/jre/api/management/extension/com/sun/management/package-tree.html > http://download.java.net/jdk6/docs/jre/api/management/extension/com/sun/management/OperatingSystemMXBean.html#getProcessCpuTime() > > with Java 6.0 there might be more options: > http://download.java.net/jdk6/docs/api/java/lang/management/OperatingSystemMXBean.html#getSystemLoadAverage() > > and have a look at www.lamdaprobe.org and its sources to get an idea. > Basically you can get the CPU time the process uses and can put it into > relation to a period of time to get the relative CPU usage like > lamdaprobe does it. However it'll be only the usage of the JVM process > not all processes. > No clue how to measure per thread and you'll have to find a way to map > all http connector threads in use at each point in time to each webapps > to get a sum of cpu times for a certain webapp and put it into relation > to the overall process time. Maybe you could weave something before and > after each connector thread with aspectJ to measure to time the thread > was used or have your own implementation. Nevertheless this wouldn't > measure the cpu time of that thread, too. > For memory it'll be difficult, too. Probably you can measure all objects > similar to what lamdaprobe does for the Httpsession object. Instead > you'd have to measure all objects for one classloader. As you have one > classloader per webapp, this could be what you want. > I guess it'll be quite Tomcat and SunVM specific, if it works at all. > > Cheers and good luck. Let us know if you found a way. > Michael > > > --------------------------------------------------------------------- > To start a new topic, e-mail: users@tomcat.apache.org > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]