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]