Más contenido relacionado Más de ZeroTurnaround (20) The Developers Guide to Understanding Performance Problems1. IAll rights reserved. 2015 © ZeroTurnaround Inc.
DISCOVERING APPDYNAMICS, NEWRELIC, JAVA MISSION CONTROL,
YOURKIT, JPROFILER, XREBEL, JMETER
THE DEVELOPER’S GUIDE
TO UNDERSTANDING
PERFORMANCE PROBLEMS.
And many other marvelous tools
PREVIEW
2. IIAll rights reserved. 2015 © ZeroTurnaround Inc.
AN INTRODUCTION to Performance
Demystifying performance. It's all just data.
Java Monitoring Tools
Java Profilers
Performance Testing Tools
Looks great on paper, but does it work?
Performance Issues in Action
Moving Theory to Practice
The Paradox of Choice
Summary
GOODBYE COMIC and words
TABLE OF CONTENTS
The Lightweight
Java Profiler
THIS REPORT IS SPONSORED BY:
2
6
7
20
29
34
35
36
56
57
60
3. 1
All rights reserved. 2014 © ZeroTurnaround Inc.
PERFORMANCE IS 99% ABOUT
UNDERSTANDING THE PROBLEMS
When trying to pin down the top factors impacting application
performance, the right answer is that there is no right answer...
the source of a performance problem could be almost anywhere!
JULIE CRAIG
Research Director, Application Management,
Enterprise Management Associates (EMA)
That is why you need to perfectly understand your application, its needs
and abilities, and feel comfortable using a range of performance related
tools:APMs, profilers, testing libraries that will help you solve
the issues you have.
4. 2All rights reserved. 2015 © ZeroTurnaround Inc.
Here’s a small translation of common terms that your manager might use and what they actually
mean in real performance terms:
In general, almost any question about performance can be postulated in terms of the above
mentioned resources and requirements.
REAL PERFORMANCE TERMS
What Managers say What Managers mean
Speed Latency
Scalability Throughput
Startup time CPU resource consumption
RAM footprint or garbage collection Memory resource consumption
User-perceived performance Responsiveness and latency
5. 3All rights reserved. 2015 © ZeroTurnaround Inc. 33
All rights reserved. 2014 © ZeroTurnaround Inc.
DEMYSTIFYING PERFORMANCE.
IT’S ALL JUST DATA.
Gather data, stare at it intensely, then go and fix performance
problems. Sounds easy enough. Let’s dig into the variety of tools
that help you on this path.
When it comes to java performance tools that can help to optimize performance across
these areas, most fall into three major categories - Monitoring, Testing and Profiling. Java
Profiling and Monitoring both help measure and optimize performance during runtime.
Performance testing helps to show where your development efforts were not sympathetic
to real life, heavily loaded production environments. In this chapter we’ll look into the
tools that are available today, their strengths, the features they offer and also how they
find the culprits of any performance issues.
6. 4All rights reserved. 2015 © ZeroTurnaround Inc.
URL: http://www.appdynamics.com/product/application-
performance-management/
Cost: [contact sales]
AppDynamics is a company with a complex portfolio of
application monitoring software: Application Performance
management, Mobile Real User monitoring, Database monitoring,
Application analytics, etc. AppDynamics takes pride in being able
to handle the most complex deployment topologies and weird
heterogeneous setups, supporting a range of programming
languages like .Net, Python, Ruby, and Java.
$$$
Monitor end-to-end business
transaction performance within
minutes, with no overhead.
7. 5All rights reserved. 2015 © ZeroTurnaround Inc.
URL: http://newrelic.com/application-monitoring
Cost:
NewRelic is an application monitoring solution that is incredibly
easy to install into your environment and immediately gathers
valuable information about your system’s health. The monitoring
system consists of 2 parts, a javaagent that instruments your
application to collect data and the hosted service for analyzing
the data and presenting the reports.
$$$
Constantly monitoring your
applications so you don’t have to
8. 6All rights reserved. 2015 © ZeroTurnaround Inc.
URL: https://plumbr.eu/
Cost:
Plumbr is a Java Performance Monitoring tool by the company of
the same name, which runs on your JVM process Plumbr monitors
things such as memory leaks, garbage collection inefficiencies
and locked threads. The product has evolved since its first launch,
from a dedicated tool that specifically targets memory leaks in a
JVM to an overall monitoring tool which you would use 24/7.
$$$
Java Performance Monitoring:
The only solution with automatic
root cause detection
9. 7All rights reserved. 2015 © ZeroTurnaround Inc.
illuminate
URL: http://www.jclarity.com/illuminate/
Cost:
Illuminate is a Java Performance tool that gathers analytics
based on machine learning. Illuminate focuses on the entire
environment, searching for bottlenecks that could be affecting
system performance. You are also able to enter your SLA data
into the tool, so that if you are ever in breach of any of your
agreements, Illuminate will be sure to tell you (Before someone
else does)!
$$$
Goodbye Java/JVM
Performance Problems
10. 8All rights reserved. 2015 © ZeroTurnaround Inc.
JAVA MISSION CONTROL
URL: http://www.oracle.com/technetwork/java/javaseproducts/
mission-control/index.html
Cost: (FREE for development)
Java Mission Control is a Java performance monitoring tool by
Oracle which has been shipped with the JDK since Java version 7
update 40. It consists of two parts, aJMX Console and Java Flight
Recorder. JMX Console allows you go grab live information directly
from the runtime, providing you with the UI to query and change
certain aspects of the runtime. The Flight Recorder is more of a
history style tool. You can choose to run the flight recorder for an
amount of time, which will log data and metrics about the JVM.
After this, you can review the data from this period to drill down
and diagnose certain performance problems.
$$$
11. 9All rights reserved. 2015 © ZeroTurnaround Inc.
URL: https://www.yourkit.com/features/
Cost:
The YourKit profiler, by the company of the same name, is one
of the most established leaders in the Java profilers category.
As a mature and versatile profiler, YourKit can do both CPU and
memory profiling for you, with integrations across major Java
application servers, JDBC and other frameworks for high-level
performance analysis like finding synchronisation issues and
excessive database access.
$$$
The Industry Leader
in .NET & Java Profiling
12. 10All rights reserved. 2015 © ZeroTurnaround Inc.
JPROFILER
URL: https://www.ej-technologies.com/products/jprofiler/
overview.html
Cost:
JProfiler, by ej-technologies GmbH, is one of the toolsthat
comprises their performance oriented tools portfolio. They also
have an APM solution, but in this section we want to focus on
their profiler. JProfiler is a comprehensive profiler for Java SE and
Java EE applications with plugins for all major IDEs which provides
enhanced analysis of the collected profile data. The main approach
of the JProfiler analysis is to collect and record profiling session
data: metrics and the information about the application behavior.
$$$
The Award-Winning
All-in-One Java Profiler
13. 11All rights reserved. 2015 © ZeroTurnaround Inc.
URL: http://xrebel.com/
Cost:
XRebel by ZeroTurnaround is a lightweight Java profiler that is
intended for use in a development environment. It’s a javaagent
that instruments Java web-applications and automatically injects
a widget like reporting console, embedded in your application
view. The widget shows the application performance data. The
main benefit comes from the fact that the developer can fix
nastiest performance issues without even committing the poor
code into the build.
$$$
The Lightweight Java Profiler
14. 12All rights reserved. 2015 © ZeroTurnaround Inc.
URL: http://gatling.io/
Cost: FREE!
Gatling is an open source load testing framework based on Scala,
Akka and Netty with extremely beautiful HTTP reports.
Gatling can record test scenarios and has a developer-friendly
DSL, so you can easily extend your recorded tests.
$$$
Arm yourself for Performance
15. 13All rights reserved. 2015 © ZeroTurnaround Inc.
Performance Issues in Action
So, your application is slow. Maybe you experienced that firsthand or
maybe your project manager came to you saying: “Users are complaining
that it’s slow again”. Perhaps your operations team are pointing fingers at
you, giggling that you are unable to deliver a single performing artifact to
them. Irrespective of the information’s source, you are at the edge of the
problem and the fix. You have to now determine what’s going on and then
figure out how to fight the fire.
At the same time, you can be sure that just fixing this issue once and
forever is not an option available to you. You’ll have the same problem
after the next release, then again and again. What you really need is a
change of perspective. How should you treat performance issues and the
performance of your application in general?
Well, there are several ways to fight application performance issues, and
they even share a crucial common trait. They all assume that you operate
on hard data and know what you’re doing. While this may be very accurate,
you must take this next piece of advice very seriously
Performance issues cannot be solved by shooting from the hip.
Measure, apply a fix, measure again!
17. 15All rights reserved. 2015 © ZeroTurnaround Inc.
Written by:
Oleg Shelajev (@shelajev), Simon Maple (@sjmaple)
Designed by: Ladislava Bohacova (@ladislava)
Contact us
Estonia
Ülikooli 2, 4th floor
Tartu, Estonia, 51003
Phone: +372 653 6099
Twitter: @RebelLabs
Web: http://zeroturnaround.com/rebellabs
Email: labs@zeroturnaround.com
USA
399 Boylston Street,
Suite 300, Boston,
MA, USA, 02116
Phone: 1 (857) 277-1199
Czech Republic
Jankovcova 1037/49
Building C, 5th floor,
170 00 Prague 7, Czech Republic
Phone: +420 227 020 130