JProfiler8 @ OVIRT
Upcoming SlideShare
Loading in...5
×
 

JProfiler8 @ OVIRT

on

  • 524 views

Using JProfiler8 at the OVIRT project

Using JProfiler8 at the OVIRT project

Statistics

Views

Total Views
524
Views on SlideShare
524
Embed Views
0

Actions

Likes
0
Downloads
4
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

JProfiler8 @ OVIRT JProfiler8 @ OVIRT Presentation Transcript

  • Jprofiler 8 & OVIRT
  • Agenda • Why profiling • Installing Jprofiler – Connecting Jprofiler to OVIRT • Analyzing the results – CPU analysis – Memory analysis – Threads analysis – Database analysis
  • • "We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil" – Donald Knuth
  • Profiler • Connects to running code and instruments the Java classes • Application should run at least slower than without a profiler • Gives a very good insight on what's going on inside our code
  • private static void test1() { String s = ""; for (int i = 0; i < 100; ++i) { s = s + "a"; } } private static void test2() { StringBuffer sb = new StringBuffer(); for (int i = 0; i < 100; ++i) { sb.append("a"); } } private static StringBuffer sb = new StringBuffer(); private static void test3() { sb.setLength(0); for (int i = 0; i < 100; ++i) { sb.append("a"); } }
  • Pretty Code vs. Fast Code • What’s the clearer code? • What’s the faster code?
  • Installing JProfiler • We have licenses to Jprofiler 8. • Contact me for serial number information – We were asked not to publish S/N
  • OpenJDK Issues • Install Oracle Java  • Update alternatives –config java or just the jprofiler.sh script # Uncomment the following line to override the JVM search sequence INSTALL4J_JAVA_HOME_OVERRIDE=~/jre1.7.0_25 # Uncomment the following line to add additional VM parameters # INSTALL4J_ADD_VM_PARAMS=
  • Configuring OVIRT • Jprofiler automatic configuration updates jboss’s script files. • Since we use ovirt-engine service, add the following line: • I added it directly in /etc/init.d/ovirt-engine under engineArgs.extend, but other options are possible too -agentpath:/root/jprofiler8/bin/linux-x64/libjprofilerti.so=port=8849,nowait
  • Jprofiler main page • Create a new session
  • Connection Page
  • Analyzing Information • CPU – Check method execution time – only Runnable or any state • Memory – Who allocates which objects • Threads – To check for thread leaks, dead-locks, etc. • Database – To check for query execution time
  • CPU • CPU View • Hotspots – Inherent Time vs Avg Execution Time vs Num Of Executions
  • CPU
  • CPU
  • Memory • Allocated objects • Monitor GC activity
  • Live Memory
  • Threads • State • Thread snapshot
  • Threads
  • Database Access • Connection status • Hot spots
  • Database
  • Other Monitoring Capabilities • Network • HTTP servlets
  • Alternatives • Don’t want a profiler? That’s fine. Other tools exist (can also assist in production): – Jmap • Heap status – Jstack • Thread status – verboseGC • GC duration