This eBook describes the barriers to consistent performance for Java applications and how to overcome them. It uses real world examples in enterprise search (Solr/Lucene), SaaS, low latency and user interactive applications. The eBook provides information on how to accurately measure Java application performance and how to achieve consistency.
3. 1
Java Performance Barriers
10,000
Restart
Total players
in the game
8,000
Java performance is great – until it isn’t.
This graph is all too familiar to Java
shops. As usage grows, then suddenly
processing stops or the JVM crashes.
Sometimes this is due to out-of-memory
errors or the JVM pausing to perform
6,000
garbage collection.
Graph courtesy of Smart Bomb Interactive
4,000
2,000
0
Login attempts
Minutes
Java for the Real Time Business
3
L e g ac y J V M s h i t s c a l a b i l i t y l i m i t s
4. 2
A Better Java: Zing Innovations
Zing is a better JVM that delivers:
Consistent response times, even under load
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Java SE compliance
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Efficient hardware and human capital utilization
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Faster time to market for new features and applications
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
New avenues for business innovation and additional revenue
Java for the Real Time Business
4
Z i n g i n c o r p o r at e s Az u l’ s u n i q u e
C 4 “ pa u s e l e s s ” g a r b ag e c o ll e c t i o n
algorithm
5. 3
Measuring Java Performance
An average response time of 0.8
msec is good, right?
How you measure and report the
Not if the maximum response time
violates your SLA, frustrates your
customers or causes you to miss
revenue opportunities.
distribution. You need to understand both
performance of your systems is critical.
Response time is usually NOT a normal
the average and maximums. Azul’s jHiccup
tool was designed to provide an accurate
view of a production application.
Read more about how NOT to measure
latency here.
Hiccups by Percentile Distribution
4000
3500
Max=3448.832
3000
2500
2000
1500
1000
500
0
0%
90%
99%
99.9%
99.99%
99.999% 9.9999%
Java for the Real Time Business
5
D ow n l oa d t h e o p e n s o u r c e jH i c c u p t o o l
6. 4
Real World Examples
Example 1:
50 se10 msec
0 sec
ec
Supercharging Search
40 sec
0 sec
e
This example is from NetDocuments,
30 sec
0 sec
se
one of the first SaaS companies.
20 sec
sec
Their application is built around search.
0
In testing on Apache Solr™, their current
sec
10 se
e
ec
“
“
Application Pause, in msec
60 sec
ec
c
JVM experienced pauses of almost
0
Minutes
50 seconds.
Running on Zing, the max pause was
under 10 milliseconds.
Without Zing we would not have been able to
deploy Apache Solr for our production system.
Our customers could have experienced long
pauses when searching for critical documents.
– Mou Nandi, Search Engineer and Architect
NetDocuments
Java for the Real Time Business
6
D ow n l oa d t h e N e t D o c u m e n t s c a s e s t u dy
7. “
“
…I remain impressed with Zing, and I wish its
C4 collector were the default for Java! Then we
all would stop having any GC worries and could
freely use Java with very large heaps, fundamentally changing how we build software in
this age of very cheap RAM
– Mike McCandless
Apache Lucene committer
and PMC member
Zing: The Java Supercharger
Mike McCandless, Apache Lucene
committer and PMC member tested
Lucene on Zing. His results clearly show
the response time advantages of using
Zing with Lucene deployed with a large
RAMDirectory:
Response Time (msec)
20,000
15,000
CMS MMap
CMS RAM
Zing RAM
5,000
0
100
300
500
700
900
QPS
Java for the Real Time Business
7
Read Mike‘s blog posts
MAX:
MIN:
AVG:
90 Pe
99 Pe
180
160
140
120
100
80
60
40
20
0
0%
200
MAX
MIN:
AVG
90 P
99 P
180
160
140
120
100
80
60
40
20
0
Max Response Time vs QPS
10,000
200
0%
8. HotSpot JVM
Azul Zing
OpenJDK™
1400
1200
This example is from a digital and
milleseconds
1000
web-based services provider that did a
800
side-by-side comparison of Apache Solr
600
on three different JVMs.
400
Using Zing they were able to lower
response times 60% and eliminate
200
0
outliers.
Median
90%
95%
99%
99.99%
Max
percentile
Zing Supercharges Search
In-memory indices of 60 GB and more
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 - 3X more throughput on the same hardware
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Seamless service and consistent response times
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
New opportunities for innovation
Java for the Real Time Business
8
D ow n l oa d a t r i a l c o p y o f Z i n g
9. Example 2
Low Latency Applications
80
Low latency can refer to machine-level
(microseconds) or user interactive levels
70
HotSpot JVM 15k Users
50
tions benefit from Zing’s ability to deliver
consistent response.
40
30
(milliseconds). Both types of applica-
This machine-level benchmark from
HotSot JVM 10k Users
Service Level Agreement
25 Milliseconds Max
Push Technology highlights the advantages gained from deploying Zing.
20
HotSpot JVM 5k Users
10
Azul Zing 15k Users
Zing delivered 15X more throughput
than Oracle’s HotSpot and eliminated
“
Hiccup Distribution (msec)
60
long response time outliers.
0
0%
90%
99%
99.9%
99.99%
“
Percentile
99.999%
...by running Diffusion™ on Zing, application
pauses in latency critical deployments can be
effectively removed.
– Push Technology Benchmark Report
August 2013
Java for the Real Time Business
9
D ow n l oa d t h e b e n c h m a r k r e p o r t
10. 200
This benchmark from a financial industry
MAX: 790.528
MIN: 0.062
AVG: 9.42
90 Percentile: 5.84
99 Percentile: 337.76
180
160
140
120
consulting firm compared performance of
an algo trading engine running under high
load stress on Oracle’s HotSpot vs. Zing.
100
80
60
Oracle’s HotSpot
Max response time
20
0
0%
200
500
1000
1500
2000
MAX: 8.768
MIN: 0.062
AVG: 0.42
90 Percentile: 0.69
99 Percentile: 4.06
180
160
140
120
Zing
100
Max response time
80
60
40
20
0
790
msec
“
40
0%
“
500
1000
1500
2000
8.768
msec
Under high stress, Zing shows much lower
application latency in comparison to HotSpot.
– Consulting Report
Java for the Real Time Business
10
R e a d t h e w h i t e pa p e r J a va w i t h o u t t h e J i t t e r
11. 10,000
Restart
Total players
in the game
8,000
Example 3
User Interactive Applications
User interactive applications also need
low latency, just on a different scale.
Users are demanding and will only wait
a couple seconds before clicking away.
6,000
Remember this graph?
It’s a recipe for user frustration.
Zing eliminated pauses, stalls and
4,000
restarts, and allowed Smart Bomb Inter-
“
active to grow from 8,000 to 20,000
social gaming users per server– 2.5X
2,000
0
more capacity on the same hardware–
“
Login attempts
Minutes
just by implementing Zing.
Azul Zing removed an unacceptable limit on
the scalability of our online gaming experience.
We’ll use Zing everywhere we need to avoid
garbage collection issues.
– Jeff Amis, VP Product Development
Smart Bomb Interactive
Java for the Real Time Business
11
D ow n l oa d t h e Sm a r t B o m b I n t e r ac t i v e C a s e S t u dy
12. Vocalabs, which provides SaaS-based customer feedback
programs, provides this example. Their report generation
system continually receives new data. As the number of
users grew, this led to unacceptably long GC pauses.
Performance Issues
Solution – Deploy on Zing
GC Pauses up to 2 minutes long
Eliminated GC Pauses
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reports couldn’t be rebuilt often
enough as new data was added
Reports can be rebuilt more often
to incorporate the latest data
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Adding report filters was too slow
Developers spending too much
time on performance tuning and
not enough on features
Adding report filters is nearly
instantaneous
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Developers have more time to
spend adding value for customers
Java for the Real Time Business
12
D ow n l oa d t h e Vo c a l a b s c a s e s t u dy
13. Scale Up Not Out!
This example is from a Global telecommunications company:
Long pauses limited their existing
JVM to 4 GB heaps
This example is from SuccessFactors,
a major SaaS provider:
Could use only a few GB of heap/instance
before pauses became intolerable
..........................
Under load the environment became
unstable and repeatedly crashed due to
out-of-memory errors
..........................
The company overprovisioned the
systems with memory, but this led to low
utilization rates outside of peak periods
“
This wireless operator replaced 16 JVM
instances with a single 98 GB Zing instance
..........................
Better SLA compliance (response times
consistently under 2 msec)
..........................
Able to consolidate their online store
processing onto a single server from 16,
freeing up resources for other initiatives
Increased throughput 4X and user
capacity/instance by 2.4X
..........................
Simplified the infrastructure 3X
improved reliability
With Zing, we can scale up with software.
– CIO, SuccessFactors
With Zing, we get 2 ½ times the number of
users on the same hardware–without crashing.
– CIO, Social Gaming Company
Java for the Real Time Business
13
14. 5
Tuning? Nah
For most JVMs, tuning parameters
look like this
Developers and IT staff can spend hours,
days, and weeks tuning and retuning their
JVM flags each time the application changes.
This is time that would be better spent adding
new capabilities for your business. (And your
developers will be more productive, too!)
Java for the Real Time Business
14
15. For Zing, tuning parameters
look like this
That’s it. Just set the memory high and go.
Now your developers can spend their time doing what they like to do–adding features and
building new capabilities.
And with Zing, there’s no need to re-tune your
JVM when your app changes.
Java for the Real Time Business
15
16. 6
Dramatically improve your ROI
Eliminate most JVM tuning
3 Days, even weeks of lost developer hours each time the application is modified
Capture lost revenue opportunities
3 Retail/eCommerce: increase shopping cart success rates 3% or more
3 Insurance: increase success rates for online quoting
3 Real time advertising: more successful bids for increased click-through and revenue
3 HFT, algo trading, Forex: never miss a trade due to platform stalls
Increase infrastructure efficiency
3 Handle 2 - 3X more users or transactions on existing hardware
3 Get 40% more utilization from your current servers
3 Delay or cancel new hardware purchases
Pursue new opportunities
3 Launch Cloud or SaaS services not practical with other JVM technology
3 Deploy new algos faster to create competitive advantage
3 Add memory-intensive eCommerce features that increase conversion rates and order size
3 Manage risk of new initiatives better using more comprehensive real time information
Java for the Real Time Business
16
D ow n l oa d t h e ROI w h i t e pa p e r
17. 7
Getting Started
1 First, see what your
application performance
looks like now.
Read Gil Tene’s Blog Post: How Java Got the Hiccups
Hiccups by Time Interval
Max Per Interval
99%
99.90%
99.99%
Max
60
50
2 Download and run jHiccup,
Azul’s open source Java
performance measurement
tool. It will create graphs
like these:
40
30
20
10
0
0
100
200
300
400
500
600
700
800
900
Elapsed Time (sec)
Hiccups by Percentile Distribution
60
50
Max=49.728
40
30
20
10
0
0%
90%
99%
99.9%
99.99%
99.999%
Java for the Real Time Business
17
D ow n l oa d jH i c c u p ( f r e e )
a n d r e a d m o r e o n h ow t o u s e i t h e r e
18. 3 Next, get Zing.
Download and run Azul Inspector to
gather information on your current
Java deployment.
Free
Trial
Request a free trial copy of Zing.
Download and install your copy
(takes about 5 minutes).
Work with your assigned Azul Engineer
to optimize and tune your app and
environment to achieve the best results.
80
Oracle’s
Hotspot
Hiccup Duration (msec)
70
60
50
67x
40
Improvement
30
222x
20
Improvement
10
Zing
0
0%
90%
99%
99.9%
99.99%
999.999%
Percentile
Java for the Real Time Business
4000
3500
18
Latency (msec)
3000
2500
2000
1500
1000
Oracle’s HotSpot
Zing
Zing delivers lo
average respon
time; 1000x low
worst case
response time
19. 8
Summary
Zing makes all your Java applications run
Zing – The Java Supercharger
better – with consistent and reliable
performance – to better support the needs
of your business
Eliminates pauses, stalls and jitter
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Supports heaps over 300 GB with no performance penalty
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reduces tuning to just a few parameters
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Opens up new avenues for business innovation
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Frees Developers to spend more time adding value for customers
Java for the Real Time Business
19
Z i n g S p e c i f i c at i o n s