Running Thermostat

Running Thermostat

Examining And Increasing Java Application Performance Omair Majid & Jon VanAlten Red Hat, Inc. June 12, 2013 throw new GrabAudienceException() Agenda ● Performance ● Existing Tools ● Thermostat ● Demos ● Plugins Performance Assumption: Java is slow. Reality: Java performance is much better than in the past, and out-performs many other languages that are used in the same space. But, we'd still like to improve. http://benchmarksgame.alioth.debian.org/u64q/java.php What sort of activity can be a sign of trouble? Object creation smells. Bad thread model. Locking and synchronization issues. Waiting on I/O. Application-specific issues. Misbehavior in dependencies (libraries, middleware). Issues opaque to JVM (native code, OS, hardware). Memory Allocation & GC ● Too much GC ● Many short-lived objects ● Memory 'Leaks' Locks ● Too much waiting on locks ● Deadlocks Threads ● Too much synchronization ● Not enough threads Input/Output ● File I/O ● Network I/O ● Open Files Something Different? Maybe, for your application, the only valid 'performance' is an application-specific metric? Tools Basic OpenJDK Tools ● jps ● jstack ● jmap ● jinfo jps jstack 1 2 3 jmap: Heap Information ● jmap -heap jmap: Heap Information ● jmap -histo jinfo Basic Linux Tools ● ps ● top Advanced Linux Tools ● Systemtap ● Byteman ● Oprofile oprofile Problems ● Only knows Java ● Doesn't know Java ● Too Simple? Too Hard? What is thermostat? Currently For Data Collection jvmstat oprofile JMX byteman jps jmap /proc jinfo Display Platform Integration ? Application Server and Platform Java Virtual Machine Operating System Hardware Horizontal Integration Design Storage Clients Agents Running Thermostat $ thermostat service & $ thermostat gui Running Thermostat Running Thermostat Running Thermostat Demo Examples Specific Examples and Demo ● Too Many GC invocations ● Thread trying to use the same locks ● Hangs/Deadlocks ● Memory Leaks ● Caches never released What about your application? Your Application ● The only metric is custom X per second Thermostat has you covered Plugins ● First Class Citizens ● Everything is a plugin Can introduce new data collection methods /proc/ Backend 1 Storage Core Backend 2 jvmstat Target JVM Agent Can Add Commands Can modify GUI ● Extend GUI OSGi ● Thermostat is built on top of OSGi ● Built-in code uses same APIs as plugins Plugin Layout ${THERMOSTAT_HOME}/plugins ${PLUGIN_NAME} thermostat-plugin.xml plugin-jar1.jar plugin-jar2.jar Client Agent Plugin Demo The Future Planned Features ● Better MBean Integration ● Memory Tracing and Leak Analysis ● Systemtap, Byteman & Oprofile Summary ● Performance ● Existing Tools ● Thermostat ● Plugins All of this is already available in Fedora Fedora and the Infinity design logo are trademarks of Red Hat, Inc Thanks! http://icedtea.classpath.org/thermostat ● [email protected][email protected] .

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    59 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us