In my last article I explained what a major Garbage Collection is. While a
major Collection certainly has a negative impact on performance it is not the
only thing that we need to watch out for. And in case of the CMS we might not
always be able to distinguish between major and minor GC. So before we start
tuning the garbage collector we first need to know what we want to tune
for. From a high level there are two main tuning goals.
Execution Time vs. Throughput
The first thing we need to clarify if we want to minimize the time the
application needs to respond to a request or if we want to maximize the
throughput. As with every other optimization these are competing goals and we
can only fully satisfy one of them. If we want to minimize response time we
care about the impact a GC has on the response time first and
on resource usage second. If we optimize for throughpu... (more)
Last time I explained logical and organizational prerequisites to a
successful production level application performance monitoring. I originally
wanted to look at the concrete metrics we need on every tier, but was asked
how you can correlate data in a distributed environment, so this will be the
first thing that we look into. So let’s take a look at the technical
prerequisites of successful production monitoring.
Collecting data from distributed environment
The first problem that we have is the distributed nature of most
applications. In order to isolate response time problems or... (more)
In a recent article we have shown how the Java Garbage Collection MXBean
Counters have changed for the Concurrent Mark-and-Sweep Collector. It now
reports all GC runs instead of just major collections. That prompted me to
think about what a major GC actually is or what it should be. It is actually
quite hard to find any definition of major and minor GCs. This well-known
Java Memory Management Whitepaper only mentions in passing that a full
collection is sometimes referred to as major collection.
Stop-the-world
One of the more popular definitions is that a major GC is a stop-the-w... (more)
(Note: If you’re interested in WebSphere in a production environment, check
out Michael's upcoming webinar with The Bon-Ton Stores)
Most articles about Garbage Collection ignore the fact that the Sun Hotspot
JVM is not the only game in town. In fact whenever you have to work with
either IBM WebSphere or Oracle WebLogic you will run on a different runtime.
While the concept of Garbage Collection is the same, the implementation is
not and neither are the default settings or how to tune it. This often leads
to unexpected problems when running the first load tests or in the worst case... (more)
Setting up Application Performance Monitoring is a big task, but like
everything else it can be broken down into simple steps. You have to know
what you want to achieve and subsequently where to start. So let’s start at
the beginning and take a top-down approach
Know What You Want
The first thing to do is to be clear of what we want when monitoring the
application. Let’s face it: we “do not want to” ensure CPU utilization
to be below 90 percent or a network latency of under one millisecond. We are
also not really interested in garbage collection activity or whether the
database ... (more)